Programación en lenguaje ensamblador, ¿un maestro puede entrar y ver qué hay de malo en este programa?
¡Se han corregido 3 preguntas!
segmento de datos
cadena0 db 10,0,10 dup(?)
cadena1 db 'ingrese el número:',0dh,0ah,'$'
string2 db '¡no coincide!','$'
string3 db 'ok!','$'
string4 db '12345'
los datos terminan
segmento de código
se supone cs:code,ds:data
start:mov ax,data
mov ds,ax
PUSH DS Debido a que las dos cadenas que se comparan están en el mismo segmento, se debe usar DS=ES
POP ES
lea dx; ,string1
mov ah,09h
int 21h
lea dx,string0
mov ah,0ah
int 21h
lea si,string2
lea di,string4
mov cx,0 ;;;;;;;;;;; /p>
lea bx,string1 ;;;;;;;;;;;;
mov cl,[bx] ;;;;;;;;;;; p>
mov cl,[bx] ;;;;;;;;;;;;
p>
cmp cl,5 ;;;;;;;;;;;;;;
jne no_m ;Los caracteres de entrada no son 5
cld
repe cmpsB Es un carácter de comparación, no una palabra de comparación
jz outp
no_m:
mov dl,0dh
mov ah, 02h
int 21h
mov dl,0ah
mov ah,02h
int 21h
lea dx ,string2
mov ah,09h
int 21h
jmp endd
salida: mov dl,0dh
mov ah,02h
int 21h
mov dl,0ah
mov ah,02h
int 21h
lea dx,string3
mov ah,09h
int 21h
endd: mov ah,4ch
int 21h p>
el código termina
fin y comienzo