Dan*_*ker 22 assembly nasm cpu-word word-size yasm
什么是大小tword,oword以及yword操作数,如使用NASM/YASM手册?在相关的说明中,这些名称是否存在技巧或潜在的想法?有没有一种方法可以为更大的字大小赋予逻辑名称?
我知道,虽然字大小可以系统之间是不同的,一个NASM word是2个字节,dword是两倍(4个字节),qword是一个四字(8个字节),但是...是tword一个三重字(6个字节)?而对于oword和yword我甚至不能想象的一个似是而非的含义.
请注意,这可能是一个简单的问题,但我找不到答案.在NASM和YASM手册这些尺寸没有解释,甚至没有在DQ,DT,DY,RESQ,REST,RESY伪指令.我读到MASM使用类似系统的地方,但也找不到任何东西.
编辑:根据答案,这是完整的列表:
byteDBRESBwordDWRESWdwordDDRESDqwordDQRESQtwordDTRESToword,DO,,RESODDQRESDQywordDYRESYzwordDZRESZ我用两种NASM方法检查了它:源代码和经验.
源代码
来源:http://repo.or.cz/w/nasm.git
然后:
git grep -C2 tword
Run Code Online (Sandbox Code Playgroud)
我们堕落:
switch (size) {
case 1:
return "byte";
case 2:
return "word";
case 4:
return "dword";
case 8:
return "qword";
case 10:
return "tword";
case 16:
return "oword";
case 32:
return "yword";
case 64:
return "zword";
default:
return "???";
}
Run Code Online (Sandbox Code Playgroud)
经验
git log -p并git tag --contains告诉我zword2.11中添加了,因为我在2.10并且懒惰,我会省略那个.
在我们的.asm档案中:
section .bss
resb1 resb 1
resw1 resw 1
resq1 resq 1
rest1 rest 1
reso1 reso 1
resy1 resy 1
; Just to read the objdump better.
resb2 resb 1
Run Code Online (Sandbox Code Playgroud)
然后编译并:
objdump -D -j .bss main.o
Run Code Online (Sandbox Code Playgroud)
得到:
00000000 <resb1>:
...
00000001 <resw1>:
...
00000003 <resd1>:
3: 00 00 add %al,(%eax)
...
00000007 <resq1>:
...
0000000f <rest1>:
...
00000019 <reso1>:
...
00000029 <resy1>:
...
00000049 <resb2>:
...
Run Code Online (Sandbox Code Playgroud)
如果我们考虑每个职位之间的差异,我们会得到与以前相同的结论.
zword menemonic
对于ZMMAVX-512添加的寄存器:https://en.wikipedia.org/wiki/AVX-512
我想知道英特尔将在字母表的字母结束时做什么.
| 归档时间: |
|
| 查看次数: |
13387 次 |
| 最近记录: |