Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CPU 386
- SEGMENT STACKSEGM ALIGN=16 USE16 STACK CLASS=STACK
- SEGMENT DATASEGM ALIGN=16 USE16 PUBLIC CLASS=DATA
- hello resb 10
- crlf db 13,10,13,10,'$'
- _pal db "Palindroma","$"
- _npal db "Non Palindroma","$"
- SEGMENT CODESEGM ALIGN=16 USE16 PUBLIC CLASS=CODE
- ..start:
- mov ax, DATASEGM
- mov ds, ax
- xor cx, cx
- xor di, di
- ; leggo la stringa in input
- leggi:
- mov ah, 01h
- int 21h
- cmp al, 0Dh
- je fine_lettura
- cmp di, 09h
- je fine_lettura
- mov [hello+di], al
- inc di
- loop leggi
- fine_lettura:
- ; carattere terminatore (stringa)
- mov byte [hello+di], '$'
- mov dx, crlf
- mov ah, 09h
- int 21h
- xor cx, cx
- xor si, si
- dec di
- ; verifica se e' palindroma o no
- palindroma:
- cmp si, di
- jge is_palindroma
- xor bx, bx
- mov bh, [hello+si]
- mov bl, [hello+di]
- cmp bh, bl
- jne non_palindroma
- inc si
- dec di
- loop palindroma
- is_palindroma:
- mov dx, _pal
- mov ah, 09h
- int 21h
- jmp esci
- non_palindroma:
- mov dx, _npal
- mov ah, 09h
- int 21h
- esci:
- mov ah, 01h
- int 21h
- mov ah, 4Ch
- mov al, 00h
- int 21h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement