所以我做了一个程序如果两个数字相似
dosseg
.model small
.stack 100h
.data
msg1 db 10,13,"Insert first number ...$"
msg2 db 10,13,"Insert second number ...$"
msg3 db 10,13,"The numbers are similar ...$"
msg4 db 10,13,"The numbers are not similar ...$"
.code
main proc
mov ax,@data
mov ds,ax
mov dx,offset msg1
mov ah,9
int 21h
mov ah,1
int 21h
mov cl,al
mov dx,offset msg2
mov ah,9
int 21h
mov ah,1
int 21h
mov dl,al
cmp dl,cl
je l1
mov dx,offset msg4
mov ah,9
int 21h
jmp exit
l1:
mov dx,offset msg3
mov ah,9
int 21h
exit:
mov ah,4ch
int 21h
main endp
end main
我想知道我怎样比较这两个数字,以检查和打印哪一个更大。
我在这方面完全是个菜鸟,如果我搞砸了内联代码框中的一些东西,请原谅。
1条答案
按热度按时间bkkx9g8r1#
在
cmp dl,cl
中,您还没有比较输入的数字!您正在比较的是您在键盘上按下的键的ASCII码。例如,如果您按下8和3,您将比较56和51。在执行其他操作之前,您将减去48得到实际数字。如果数字是无符号值。
“大于”被命名为上方
“小于”被命名为下方
如果CL中的值高于DL中的值,则
ja
将跳转如果CL中的值大于或等于DL中的值,则
jae
将跳转如果CL中的值低于DL中的值,则
jb
将跳转如果CL中的值小于或等于DL中的值,则
jbe
将跳转如果您的数字是有符号值。
“大于”被命名为更大
“小于”被命名为less
如果CL中的值大于DL中的值,则
jg
将跳转如果CL中的值大于或等于DL中的值,则
jge
将跳转如果CL中的值小于DL中的值,则
jl
将跳转如果CL中的值小于或等于DL中的值,则
jle
将跳转