二 寻址方式(这个比较重要,不懂寻址方式汇编就无处可谈)
2.1 寄存器
说寻址方式前先说下寄存器。。。CPU的寄存器分为二大类寄存器,一种是通用寄存器,一种是段寄存器。。。寄存器按位数可以分为8位的寄存器,16位寄存器,32位寄存器。AX就是16位累加寄存器,相对的32位寄存器就是EAX。。而16位的寄存器下面又可以分为二个AH与AL的8位寄存器。这里又要提到一个非常重要的原则,高高低低原则,例如:一个物理地址113450,他在内存里是113450=52H,113451=22H,113451是高位113450是低位。。。113450对应的值就是113450=2252H。。
2.1.1 16位通用寄存器
通用寄存器可以分为通用数据寄存器,通用地址寄存器二大类。。。
通用数据寄存器有AX,BX,CX,DX。。
AX是最常用的寄存器,也叫累加器,主要是做一些乘除运算,BCD运算,换码,串操作,中断调用
BX基址寄存器,放的是一些地址和基址。。它默认相对的是DS(数据段)。。。切记。
CX计数器,这个寄存器比较少用,主要用于循环计数,串操作计数等。。
DX数据寄存器,与AX差不多。。。主要用于16位乘除,中断调用等。
通用地址寄存器也是有四个,BP,SP,SI,DI。
BP是基址指针,放的是地址跟基址。。(它相对的是SS(堆栈段),在反汇编里操作指令中的操作数除非有段超越ES:或CS:,否则除了BP外相对的都是DS(数据段))
SP是堆栈指针,存放栈顶地址。
SI源变址寄存器,存放变址和串操作源变址
DI目的变址寄存器,存放的是变址和串目的变址