垃圾输出中的打印到屏幕语句

时间:2013-12-08 23:36:11

标签: assembly x86

就像标题所说,我的打印程序由于某种原因输出垃圾。这是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, "$"

代码的其他部分工作正常但是一旦调用了这个特定的分支,就会吐出一堆奇怪的字符。知道为什么吗?

1 个答案:

答案 0 :(得分:1)

您需要将DX与字符串的偏移量放在一起。 DS可能已经指向您的细分数据了,不是吗?它是COM或EXE文件你正在做什么?如果它是COM,则DS已经设置。

emptyTail:
 mov dx, offset standardError   ;DX, not DL or DH.
 call print
 jmp quit