【发布时间】:2017-01-05 15:51:14
【问题描述】:
今天,在声明常量字符串时(在 win 10 中使用 Visual Studio community 2015)我遇到了一个问题。 书上说,
String BYTE "HELLO",0
当我输入相同的内容时,MASM 会抛出如下错误:
语法错误:,
然后,我删除了 ,然后显示为 0:
表达式中缺少运算符
如何消除此错误? 声明常量字符串的正确方法是什么?
【问题讨论】:
-
你在看什么书?也许它没有教你 MASM 语法?
BYTE在这里是非法的(虽然它是其他地方使用的关键字)。这应该是String db "HELLO",0并且可能位于.data段中。 -
@Cody Gray 我正在阅读 kip Irvine 的 x86 汇编编程。您的符号是在遗留数据指令下给出的,并且同样正确。它确实在 .data 段中。谢谢。
-
我的问题解决了,但很奇怪.. 更新我的电脑并重新启动后.. 它现在接受这两种表示法。但是大多数汇编程序支持的标准符号是什么?谢谢。
-
没有“大多数汇编程序”。每个人都有自己的语法。对于 MASM,该行应为
String db "HELLO",0。 -
现代版本的 MASM 也支持
BYTE指令(作为旧好的DB的替代品),事实上DB现在已经“过时”了......我希望有很多在接下来的十年中,对 SO 的 MASM 问题很有趣,好像 16/32/64b 模式和 MASM/TASM vs NASM/FASM/YASM vs gas/AT&T 之间的歧义还不够……玩得好 MS,玩得好。 :D