好久没有来了,今天来总结一下80X86的常用汇编指令,以及一些变成技巧。 首先了解一下,80X86CPU的物理结构对于学习汇编来说是个基础,80X86的结构通常由:通用寄存器,运算寄存器ALU,执行部件和执行部件缓冲器,以及外总线构成。对于80X86的寄存器组有16位寄存器组和32位寄存器组,16位寄存器的组由:4个数据寄存器(AX,BX,CX,DX);2个变址和指针寄存器(SI,DI);2个指针寄存器(BP,SP);4个段寄存器(DS,CS,SS,ES);1个指令指针寄存器(IP);和1个标志寄存器(FLAG);组成。32位寄存器在16位寄存器的基础上扩充到32位,同时多了两个状态寄存器(FS,GS);
简单了解了80X86寄存器的结构后,我们来了解一下各个寄存器的作用寄存器组:AX(AL,AH)累加器,用来进行字节的乘,除运算,字的输出输入,中间结果的缓存等算术逻辑运算以及外设的信息传递等.BX(BL,BH)基址寄存器,用来存放存储器的指针和地址;CX(CL,CH)计数器用来进行循环活串操作种的隐含计数器;DX(DL,DH)数据寄存器,用来存放字节,双字节,活多字节的操作数;
变址和指针寄存器(SI,DI)存储器的指针,分别用作串指令种的源操作数指针和目标操作数的指针;指针寄存器(BP,SP)存储器指针,存储堆栈的指针;
简单了解了一下存储器的组出和作用后,我们来学习80X86的汇编指令系统,首先了解一下指令的寻址方式,80X86汇编的指令寻址方式有,1.立即寻址,针对操作数的立即寻址即将寄存器设置出世值,如MOV AX 10H; 2.直接寻址,将DS的位首地址加上16位偏移量构成物理地址,如 MOV AX,DS:[2000] ;2.寄存器寻址,操作数存在指令指定的寄存器中,如:MOV SI,CX ;3.寄存器间接寻址,操作数的偏移地址包含在寄存器SI,DI,BP,BX之一中,当以SI,DI,BX间接寻址,操作数物理地址由数据段寄存器DS与SI或DI或BX中的偏移地址构成;当以BP间接寻址,操作数物理地址由堆栈段寄存器SS与BP中的偏移地址构成. 如 MOV AX,[BX];4.基址寻址,偏移地址是指令中给定的偏移量和寄存器BX或基数指针BP的内容之和.如 MOV DX,DELTA[BP];5,基址变址寻址操作数的偏移地址位基址寄存器BX或BP的内容加上变址寄存器SI或DI的内容,再加上指令中的8位或16位偏移量.
用户1053025 2007-5-10 17:05