使用MASM在8086中添加两个8位数字
Addition of two 8-bits number in 8086 using MASM
这是我用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
将两个常量相加后,您 add al,30h
,得到 77h
的值。这是 w
的 ASCII 代码,然后您将其打印为 ASCII 字符而不是数字。
这是我用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
将两个常量相加后,您 add al,30h
,得到 77h
的值。这是 w
的 ASCII 代码,然后您将其打印为 ASCII 字符而不是数字。