Академический Документы
Профессиональный Документы
Культура Документы
Experiment No.
palindrome or not.
Code:
.model small
.data
menu db 10d,13d,"MENU"
db 10d,"2.Reverse string"
db 10d,"3.Palindrome"
db 10d,"4.Exit"
m1 db 10d,"Enter string:$"
m3 db 10d,"Reversed string:$"
m4 db 10d,"String is palindrome:$"
string db 15 dup('$')
string2 db 15 dup('$')
len db 0000h
;********MACRO********
print macro xx
lea dx,xx
mov ah,09h
int 21h
endm
.code
start:
mov ax,@data
mov ds,ax
main:
print menu
mov ah,01h
int 21h
cmp al,'4'
je exit
cmp al,'1'
je case1
cmp al,'2'
je case2
cmp al,'3'
je case3
;*******CASES********
exit:
mov ah,4ch
int 21h
case1:
print m1
lea si,string
loop1:
mov ah,01h
int 21h
cmp al,0Dh
je skip1
mov[si],al
inc si
inc len
jmp loop1
skip1:
mov al,24h
mov byte[si],al
jmp main
case2:
lea si,string
lea di,string2
mov cl,[len]
mov ch,00
add di,cx
dec di
loop2:
mov al,[si]
mov [di],al
inc si
dec di
loop loop2
print m3
print string2
jmp main
case3:
lea si,string
lea di,string2
mov cl,[len]
loop3:
mov al,[si]
mov bl,[di]
inc si
inc di
cmp al,bl
jne skip3
loop loop3
print m4
jmp main
skip3:
print m5
jmp main
end start
Output: