MASM 8086在文本面前乱码

时间:2016-09-19 22:27:33

标签: assembly macros masm

我正在进入汇编编程,我已经开始使用MASM了。我定义了一个用于打印的宏,另一个用于字符串输入。它似乎工作正常,但如果我使用宏,打印字符串将无法工作,我不知道为什么。


yaml: line 40: mapping values are not allowed in this context

1 个答案:

答案 0 :(得分:1)

我使用MASM 6.15来组装你的样本,然后在DOSbox下运行二进制文件。

您的代码有效,但奇怪的行为源于您错误的换行序列。 DOS需要一个CRLF而不是LFCR,这就是你所拥有的。按此顺序,DOS忽略LF(10),然后处理CR(13)。 DOS处理完CR后,光标位于同一行的开头。然后输入字符串打印在“输入您的字符串”提示的开头。要解决此问题,请按以下步骤撤消换行序列:

prompt db 10, 13, "Enter your string: $"
newl db 10, 13, "$"

以下内容:

prompt db 13, 10, "Enter your string: $"
newl db 13, 10, "$"

输出(一旦修复):

C:\>dostest
Enter your string: howdy
howdy