【发布时间】:2015-08-16 09:25:43
【问题描述】:
我是组装新手,正在使用 TASM。我正在尝试使用aaa 指令,但无论我做什么,我似乎都做不到。我正在添加8 和2,并且我已经阅读了一些关于aaa 的内容,但无论我做什么,我似乎都无法打印字符1 和0。
这是我的代码:
.model small
.stack
.data
.code
main proc
mov ax, @data
mov ds, ax
mov ah, 0
mov al, '8'
add al, '2'
aaa
or ax, 3030h
mov ah, 02
mov dl, ah
int 21h
mov ah, 02
mov dl, al
int 21h
mov ax, 4c00h
int 21h
main endp
end main
【问题讨论】:
-
您的程序不会在
stdout上打印任何内容,因此您不能期望看到显示的结果。要跟踪程序的结果,请使用gdb或任何能够单步执行程序的调试器。 -
@perror: ctyme.com/intr/rb-2554.htm
-
我想我已经打印了字符,是mov啊,02指令
-
啊,你在 Windows 下……我以为你在 Linux 下。你应该指定这个。
-
来自英特尔的手册:“二进制编码的十进制整数(BCD 整数)是无符号的 4 位整数,有效值范围为 0 到 9”。
'8'和'2'都不在 0 到 9 的范围内。