怎样用汇编语言实现比较三个数的大小?
发布网友
发布时间:2022-04-29 07:57
我来回答
共3个回答
热心网友
时间:2022-06-24 13:49
题目:1试编写一个汇编语言程序,要求从键盘接收三个16进制数,并根据对三个数的比较显示出如下信息:
(1)如果三个数都不相等则显示ALL NOT EQU;
(2)如果三个数有两个数相等则显示TWO EQU;
(3)如果三个数都相等,则显示ALL EQU。
程序:
data segment
string1 db 16 p(?)
string2 db 16 p(?)
string3 db 16 p(?)
string4 db 'ALL NOT EQU'
string5 db 'TWO EQU'
string6 db 'ALL EQU'
data ends
code segment
main proc far
assume ds:data,cs:code
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov cx,16
mov bx,0
loop1: mov ah,1
int 21h
mov string1[bx],al
inc bx
loop loop1
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
mov cx,16
mov bx,0
loop2: mov ah,1
int 21h
mov string2[bx],al
inc bx
loop loop2
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
mov cx,16
mov bx,0
loop3: mov ah,1
int 21h
mov string3[bx],al
inc bx
loop loop3
mov dx,0
mov di,data
mov ds,di
mov es,di
mov cx,16
cld
lea si,string1
lea di,string2
repe cmpsb
jne a
jmp jiajiayi
a: mov cx,16
cld
lea si,string1
lea di,string3
repe cmpsb
jne b
jmp z
b: mov cx,16
cld
lea si,string2
lea di,string3
repe cmpsb
jne shuchu
jmp y
jiajiayi:
inc dx
jmp a
y: add dx,1
jmp shuchu
z: inc dx
jmp shuchu
shuchu: cmp dx,0
je shuchu0
cmp dx,1
je shuchu1
cmp dx,2
je shuchu2
shuchu0:mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
mov cx,11
mov bx,0
loop10: mov dl,string4[bx]
mov ah,2
int 21h
inc bx
loop loop10
jmp exit
shuchu1:mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
mov cx,7
mov bx,0
loop11: mov dl,string5[bx]
mov ah,2
int 21h
inc bx
loop loop11
jmp exit
shuchu2:mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
mov cx,7
mov bx,0
loop12: mov dl,string6[bx]
mov ah,2
int 21h
inc bx
loop loop12
jmp exit
exit: ret
main endp
code ends
end start
百度上有!!!!
热心网友
时间:2022-06-24 13:49
排序即可。
有冒泡法......
热心网友
时间:2022-06-24 13:50
我只能说一楼抄袭太可耻了。那个代码是我写的。。。就算转载你也得说一声吧。。。