;ve si un numero es palindromo
pila segment para stack
db 64 dup('?');define tamaño de la pila
pila ends
datos segment para 'data'
vec1 dw 1,2,3,4
vec2 dw 1,3,2,1
msg1 db 'Es palindromo ','$'
msg2 db 'No es palindromo ','$'
datos ends
codigo segment para 'code'
assume cs:codigo,ds:datos,ss:pila
push ds
sub ax,ax
push ax
mov ax, datos
mov ds, ax
mov es, ax
primero:
mov ax,vec1 ;coloca en ax el primer bit de vec1 van de 2 en 2 porque asi son los bits
mov bx,vec2[6] ;coloca en bx el ultimo bit de vec2
cmp ax,bx ;si son iguales sigue comparando
je segundo
jne mensaje2 ;si no es igual no es palindromo
segundo:
mov ax,vec1[2] ;coloca en ax el segundo bit de vec1
mov bx,vec2[4] ;coloca en bx el penultimo bit de vec2
cmp ax,bx ;si son iguales sigue comparando
je tercero
jne mensaje2
tercero:
mov ax,vec1[4] ;coloca en ax el tercer bit de vec1
mov bx,vec2[2] ;coloca en bx el ante penultimo bit de vec2
cmp ax,bx ;si son iguales sigue comparando
je cuarto
jne mensaje2
cuarto:
mov ax,vec1[6] ;coloca en ax el cuarto bit de vec1
mov bx,vec2 ;coloca en bx el primer bit de vec2
cmp ax,bx ;si son iguales es palindromo
je mensaje1
jne mensaje2
mensaje2:
lea dx,msg2
mov ah,9h
int 21h
mov ah, 1 ;espera una tecla
int 21h
mov ax, 4c00h; sale del sistema operativo
int 21h
mensaje1:
lea dx,msg1 ;despliega en pantalla que si es palindromo
mov ah,9h
int 21h
mov ah, 1 ;espera una tecla
int 21h
mov ax, 4c00h; sale del sistema operativo
int 21h
codigo ends
end