Advertisement
Guest User

Palindrome

a guest
Sep 7th, 2013
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CPU 386
  2.  
  3. SEGMENT   STACKSEGM    ALIGN=16   USE16    STACK   CLASS=STACK
  4.  
  5. SEGMENT   DATASEGM     ALIGN=16   USE16    PUBLIC  CLASS=DATA
  6.  
  7. hello     resb         10
  8. crlf      db           13,10,13,10,'$'
  9. _pal      db           "Palindroma","$"
  10. _npal     db           "Non Palindroma","$"
  11.  
  12. SEGMENT   CODESEGM     ALIGN=16   USE16    PUBLIC  CLASS=CODE
  13.  
  14. ..start:
  15.   mov      ax, DATASEGM
  16.   mov      ds, ax
  17.  
  18.   xor      cx, cx
  19.   xor      di, di
  20.  
  21.   ; leggo la stringa in input
  22. leggi:
  23.   mov      ah, 01h
  24.   int      21h
  25.  
  26.   cmp      al, 0Dh
  27.   je       fine_lettura
  28.   cmp      di, 09h
  29.   je       fine_lettura
  30.  
  31.   mov      [hello+di], al
  32.   inc      di
  33.  
  34.   loop     leggi
  35.  
  36. fine_lettura:
  37.   ; carattere terminatore (stringa)
  38.   mov byte [hello+di], '$'
  39.  
  40.   mov      dx, crlf
  41.   mov      ah, 09h
  42.   int      21h
  43.  
  44.   xor      cx, cx
  45.   xor      si, si
  46.   dec      di
  47.  
  48.   ; verifica se e' palindroma o no
  49. palindroma:
  50.   cmp      si, di
  51.   jge      is_palindroma
  52.  
  53.   xor      bx, bx
  54.   mov      bh, [hello+si]
  55.   mov      bl, [hello+di]
  56.  
  57.   cmp      bh, bl
  58.   jne      non_palindroma
  59.  
  60.   inc      si
  61.   dec      di
  62.  
  63.   loop     palindroma
  64.  
  65. is_palindroma:
  66.   mov      dx, _pal
  67.   mov      ah, 09h
  68.   int      21h
  69.  
  70.   jmp      esci
  71.  
  72. non_palindroma:
  73.   mov      dx, _npal
  74.   mov      ah, 09h
  75.   int      21h
  76.  
  77. esci:
  78.   mov      ah, 01h
  79.   int      21h
  80.  
  81.   mov      ah, 4Ch
  82.   mov      al, 00h
  83.   int      21h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement