我仍在学习汇编语言,到达代码的这一部分时感到困惑:
add SI, TYPE word
由于我还不太了解TYPE指令的含义,因此我们将SI添加到什么地方?如果有人能在SI设置为0之前说明SI设置为0的话,我将不胜感激!
摘自MASM 6.1程序员指南:
[SIZEOF
和TYPE
运算符,当应用于一种类型时,将返回该类型的整数的大小。与每种数据类型关联的大小属性为:
Data Type Bytes
--------------------
BYTE, SBYTE 1
WORD, SWORD 2
DWORD, SDWORD 4
FWORD 6
QWORD 8
TBYTE 10
您要添加一个汇编时间常数整数2
。组装到add si,2
。MASM TYPE foo
与C sizeof(foo)
相同。
通常您会使用add si, type some_array_name
,因此,如果将数组更改为dw
与db
,则您的增量代码会自动更改。
尽管在这种情况下,如果您在实际从/到AX
加载或存储的其他指令中也使用AL
而不是[SI]
,这毫无意义。
不过,您可以使用type foo
作为其他表达式的一部分来计算大小或循环边界。