Assembly 基本组件添加(tasm)
我是汇编新手,我只想把“+”和“=”放在输入之间。对不起,我说的是英语Assembly 基本组件添加(tasm),assembly,tasm,Assembly,Tasm,我是汇编新手,我只想把“+”和“=”放在输入之间。对不起,我说的是英语 .model small .stack 100h .data symbol1 db 13,10,"+: $" symbol2 db 13,10,"=: $" .code start: mov ah,1 int 21h mov bl,al int 21h add bl,al sub bl,30h mov ah,2 mov dl,bl int 21h int 20h end st
.model small
.stack 100h
.data
symbol1 db 13,10,"+: $"
symbol2 db 13,10,"=: $"
.code
start:
mov ah,1
int 21h
mov bl,al
int 21h
add bl,al
sub bl,30h
mov ah,2
mov dl,bl
int 21h
int 20h
end start
你的想法并不是完全错误,所以让我们稍微调整一下
mov ah, 1
int 21H
and al, 15 ; Mask out high nibble
mov bl, al
........ ; Display plus sign
int 21H
and al, 15
add bl, ah
add bl, 30H
.......... ; Display equal sign
mov dl, bl
mov ah, 2
int 21H
ret
所以,如果你按5,然后按2,你的屏幕可能会像这样,如果你在必要的地方插入适当的代码
5+2=7
根据提示字符串判断您的示例,您需要这样的内容
5+:2
=:7 不管是哪种方式,无论您希望使用函数2或9使用它发生什么,都必须在省略号处插入该代码。但也有一些问题
MS-DOS真实模式,嗯?真正的问题是什么?你不确定该使用什么中断吗?Ralf Brown的中断列表是一个方便的参考,例如,我只想在代码输出上显示+和=符号,那么就显示它们吧?在您的代码中,我看到
mov-ah,2
mov-dl,bl
int-21h
以显示加法的“结果”,因此您可以以相同的方式输出加载到dl中的任何字符,也可以mov-dl,“+”
。或者,您可以使用ah,9
“打印字符串”服务,检查(另一个链接,如果您不喜欢来自Ove的链接,请保留这两个链接),哪些服务可用,以及如何为它们设置参数。在int 21h
文档中,您可以找到ah=09h
-将字符串写入标准输出