回 帖 发 新 帖 刷新版面

主题:高手帮忙

从键盘输入两数,为变量WORDX,WORDY,并比较,如果相等则调用子程序EQUAL,不相等则调用子程序NOEQUAL,子程序EQUAL完成输出一字符串“EUQAL!”,子程序NOEQUAL完成输出输出一字符串“NO EUQAL!”

回复列表 (共3个回复)

沙发

data    segment
 num1 db 'abcd1234'
 num2 db 'abcd1243'
 num3 db 'equcl
 num4 db 'noequcl
data    ends
;
code    segment
 assume cs:code,ds:data
start: mov ax,data
 mov ds,ax
;
 mov cl,8;                设置比较次数
 mov si,offset num1
 mov di,offset num2
;
again: mov al,[si]
 cmp al,[di]
 jne here2;               不相等则跳转
 inc si
 inc di
 dec cl
 cmp cl,0;                是否全部比较
 je  here1;               
 jmp again;               没有全部比较但未出现不相等,继续比较
;
here1: mov dl,'equcl'
 mov ah,02h
 int 21h
 jmp stop
here2: mov dl,'noequcl'
 mov ah,02h
 int 21h
stop: mov ah,4ch
 int 21h
code    ends
end     start

板凳

是两个变量,还要用到子程序的调用

3 楼

.model small
data    segment
 num1 dw  12345
 num2 dw  12335
 mess1 db 'EUQAL!$'
 mess2 db 'No EUQAL!$'
 
data    ends
;
code    segment
 assume cs:code,ds:data

equsub proc near
 mov dx,offset mess1
 mov ah,9
 int 21h
 ret
equsub endp

noequsub proc near
 mov dx,offset mess2
 mov ah,9
 int 21h
 ret
noequsub endp


start: 
 mov ax,data
 mov ds,ax

 mov ax,num1
 cmp ax,num2
 jnz case2

case1:
 call equsub
 jmp  thisExit

case2:
 call noequsub

thisExit:
 mov ax,4c00h
 int 21h
 
code    ends
end     start

我来回复

您尚未登录,请登录后再回复。点此登录或注册