GHL's Notes/

ASM学习笔记(一)

这只是一个学生学习ASM的笔记,里面的内容不代表是正确的!

学习向导:x86 Assembly Guide

寄存器(Registers)

X86 CPU是拥有8个32位的寄存器,最多支持4GB内存。而到了64位(AMD64),则拥有了16个寄存器,还在32位寄存器上多出了一组64位寄存器(16个)

寄存器的命名,是有规则的

先从EAX,AX等说起

64位处理器下的寄存器图

Register

我的记忆方法:
R开头:64位,E开头:32位,非上者尾有X,16位,有X的一定会是16的倍数,X据说是Pair的意思,代表中有高位,低位之分

P结尾的:Pointer,存指针用的,SP:Stack Pointer缩写,代表存栈指针的(入栈出栈会看到),

H:High缩写,表示高位,L,Low缩写,表示地位

Register2

这张图可以很清晰解析EAX与AH, AL关系

另外还有一些常见的缩写

w: Word,字,16位
d: Double Word(或DWORD), 两个字,32位
b: Bytes, 字节,8位
l: long, 64位浮点数或32位int
q: quad, 64位
t: 10 Bytes, 80位
PTR: Pointer缩写,指针的意思


寄存器名词缩写:

A: Accumulator(数学运算)
B: Base
C: Counter (循环之类的)
D: Data (数据储存)

这些都是所谓的General Purpose Register(即通用的寄存器)

然后还有专有的,例如AVX或SSE指令集里面的XMM和YMM

留下一条评论

暂无评论