使用TYPE指令汇编MASM x86

问题描述 投票:0回答:1

我仍在学习汇编语言,到达代码的这一部分时感到困惑:

add SI, TYPE word

由于我还不太了解TYPE指令的含义,因此我们将SI添加到什么地方?如果有人能在SI设置为0之前说明SI设置为0的话,我将不胜感激!

assembly add masm x86-16 cpu-registers
1个回答
0
投票

摘自MASM 6.1程序员指南:

[SIZEOFTYPE运算符,当应用于一种类型时,将返回该类型的整数的大小。与每种数据类型关联的大小属性为:

Data Type      Bytes
--------------------
BYTE, SBYTE    1
WORD, SWORD    2
DWORD, SDWORD  4
FWORD          6
QWORD          8
TBYTE          10

0
投票

您要添加一个汇编时间常数整数2。组装到add si,2。MASM TYPE foo与C sizeof(foo)相同。

通常您会使用add si, type some_array_name,因此,如果将数组更改为dwdb,则您的增量代码会自动更改。

尽管在这种情况下,如果您在实际从/到AX加载或存储的其他指令中也使用AL而不是[SI],这毫无意义。

不过,您可以使用type foo作为其他表达式的一部分来计算大小或循环边界。

© www.soinside.com 2019 - 2024. All rights reserved.