我想添加两个数字,但有一个问题我找不到,请帮助我!
谢谢
.model small
.stack
.data
data1 dw 6
data2 dw 8
.code
main:
mov ax,@data
mov ds,ax
mov ax, data1
add ax, data2
add dx,ax
sub dx,'0'
mov ah,09h
int 21h
mov ah,1
int 21h
end main
dx
未初始化并在 处包含垃圾add dx, ax
。
mov ah, 9
int 21h
这将打印一个由 . 指向的以 $ 结尾的字符串
dx
。我们目前还不太清楚其中的内容dx
,但它极不可能指向代表您的号码的以 $ 结尾的字符串!
您在添加这两个数字方面做得很好。ax
应保持 14 或 0Eh。al
这是在...
中打印两位数字的“技巧”
; split the number in al
; "tens" place in ah, "ones" place in al
aam
; convert both digits from a "number"
; to ascii characters representing the numbers
add ax, 3030h
; we want to print leftmost character first
; so swap 'em
xchg al, ah
; print al
int 29h
; swap 'em back
xchg al, ah
; print al
int 29h
; please exit cleanly!
那是“从记忆中”变得非常不稳定,所以可能是错误的。我怀疑这是否是您“应该”这样做的方式int 29h
被记录为“供内部使用”,但我上次做dos时曾经工作过。祝你好运!