一、通用寄存器
1、通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特殊功能。通用寄存器的长度取决于机器字长,汇编语言程序员必须熟悉每个寄存器的一般用途和特殊用途,只有这样,才能在程序中做到正确、合理地使用它们。
2、32位通用寄存器的指定用途
寄存器 主要用途 编号 存储的数据范围
EAX 累加器 0 0 - 0xFFFFFFFF
ECX 计数 1 0 - 0xFFFFFFFF
EDX I/O指针 2 0 - 0xFFFFFFFF
EBX DS段的数据指针 3 0 - 0xFFFFFFFF
ESP 堆栈指针 4 0 - 0xFFFFFFFF
EBP SS段的数据指针 5 0 - 0xFFFFFFFF
ESI 字符串操作的源指针;SS段的数据指针 6 0 - 0xFFFFFFFF
EDI 字符串操作的目标指针;ES段的数据指针 7 0 - 0xFFFFFFFF
3、寄存器结构关系
32位cpu通用寄存器与8位cpu通运寄存器的关系,那么我们还可以推测,64位cpu通用寄存器包括以后可能会出现128位cpu通用寄存器,256位cpu通用寄存器之间的关系。
二、内存读写
1、寄存器位于CPU内部,执行速度快,但比较贵。
2、内存速度相对较慢,但成本较低,所以可以做的很大。
3、寄存器和内存没有本质区别,都是用于存储数据的容器,都是定宽的。
4、寄存器常用的有8个: EAX、ECX、 EDX、 EBX、 ESP、 EBP、 ESI、 EDI.
5、byte(字节) 1byte=8bit
word(字)。 1word=16bit
dword(双字)。 1dword=32bit
6、内存写入/读取数据
写入:
mov 容器(byte,word,dword) ptr ds:[内存地址编号],0x数据
读取:
mov 要被读入的容器,读取的数据宽度 ptr ds:[地址编号]