就像标题所说,我的打印程序由于某种原因输出垃圾。这是proc定义:
print proc near
mov ah, 09h
int 21h
ret
print endp
以下是我的代码中调用的地方:
emptyTail:
mov dl, offset standardError
call print
jmp quit
这是standardError:
standardError db "Sorry we ran into an error. Try again", 13,10, "$"
代码的其他部分工作正常但是一旦调用了这个特定的分支,就会吐出一堆奇怪的字符。知道为什么吗?
答案 0 :(得分:1)
您需要将DX与字符串的偏移量放在一起。 DS可能已经指向您的细分数据了,不是吗?它是COM或EXE文件你正在做什么?如果它是COM,则DS已经设置。
emptyTail:
mov dx, offset standardError ;DX, not DL or DH.
call print
jmp quit