【发布时间】:2018-02-11 05:43:43
【问题描述】:
这是我使用 MASM 在 8086 中编写的代码。该代码用于两个 8 位数字的简单相加(无需担心进位)。我给以下程序输入了两个数字: 31h 和 16h 。输出应该是 47h,但它给我的输出是'w'。如果我取一些不超过 9 的数字,代码可以正常工作,有人可以在这里指出我的错误吗?
代码:
data segment
n1 db 31h
n2 db 16h
data ends
code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
mov al,n1
mov bl,n2
add al,bl
add al,30h
mov dl,al
mov ah,02h
int 21h
mov ah,4ch
int 21h
code ends
end start
【问题讨论】:
-
查看stackoverflow.com/tags/x86/info 中的多位数字常见问题解答。它有一些指向整数->字符串示例的链接。
标签: assembly masm x86-16 microprocessors emu8086