假设我有以下代码(它会发出错误:Expected scalar type
):
a db 10 dup(2)
b db $-3
有没有办法做一些与装配相同的东西? 编辑:我正在使用TASM for 8086
答案 0 :(得分:0)
哪个汇编程序? dup
看起来像Masmese。在纳什姆,b db ($-$$) - 3
将会这样做。您想要将此值放在一个字节中似乎不太可能。我会使用dd
或64位代码dq
。
我认为你不会在Nasm手册中的任何地方找到“标量”这个词,但它意味着“不是一个可重定位的值”。与任何标签一样,$
可重定位,但两个标签之间的差异是“标量”值。
与C不同,我们没有“汇编语言标准委员会”。汇编程序作者可以自由使用他们喜欢的任何语法 - 他们这样做!在AT& T语法中(这不是)$
具有完全不同的含义。可能无法在Masm工作,但值得一试。你真的需要指定哪个汇编程序!
答案 1 :(得分:0)
它不是标量类型,因为 db 变量包含一个字节,而($ -3)表示当前偏移减去3(偏移量是一个单词( 2 字节)在16位模式下或双字( 4 字节)在32位模式下)