我制作了一个显示最大的代码但是我的老师要求我们制作另一个输入3个数字并显示最小值的代码。
这是代码:
org 100h
jmp start
msg1 db 10,13,"Enter first number: $"
msg2 db 10,13,"Enter second number: $"
msg3 db 10,13,"Enter third Number: $"
num1 db ?
num2 db ?
num3 db ?
start:
lea dx, msg1
mov ah, 9
int 21h
mov ah, 1
int 21h
mov num1, al
lea dx, msg2
mov ah, 9
int 21h
mov ah, 1
int 21h
mov num2, al
lea dx, msg3
mov ah, 9
int 21h
mov ah, 1
int 21h
mov num3, al
mov bl, num1
cmp bl, num2
jng number2
cmp bl, num3
jng number3
mov ah, 2
mov dl, num1
int 21h
jmp escape
number2:
mov bl, num2
cmp bl, num3
jng number3
mov ah, 2
mov dl, num2
jmp escape
number3:
mov ah, 2
mov dl, num3
int 21h
escape:
ret
示例输出:
第1号我输入3
第二个不,我输入2
第3个不,我输入1
,最大的是3,但输出将是13,因为我不知道如何在我的代码上放置空格:D ...
请帮助!!! XD这也是我第一次发布这个...很抱歉我的语法错误。
答案 0 :(得分:1)
mov ah, 2 mov dl, num2 jmp escape
在这部分中,您的程序忘记实际使用int 21h
调用DOS。
我不知道如何在我的代码上添加空间
只需在同一行的输出之间需要一些空间的地方使用以下内容:
mov ah, 2
mov dl, " "
int 21h
或者使用以下项目将项目放在不同的行上:
mov ah, 2
mov dl, 10
int 21h
mov dl, 13
int 21h
更好的解决方案是在输出数字之前显示合适的消息:
msg4 db 10,13,"Smallest value: $"
...
lea dx, msg4
mov ah, 9
int 21h
我的老师要求我们另外一个输入3个数字并显示最小值。
只需通过jng
(不少于跳转)指令更改所有jnl
(不要跳转)指令。
这是一个稍微好一点的代码版本并使用jnl
:
mov bl, num1
cmp bl, num2
jnl number2
cmp bl, num3
jnl number3
mov dl, num1
jmp Print
number2:
mov bl, num2
cmp bl, num3
jnl number3
mov dl, num2
jmp Print
number3:
mov dl, num3
Print:
mov ah, 2
int 21h
ret
星期一祝你好运!