使用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 字符而不是数字。