汇编指令总结

汇编语言程序设计资料简汇

 

通用寄存器

8位通用寄存器8个:AL、AH、BL、BH、CL、CH、DL、DH。

16位通用寄存器8个:AX、BX、CX、DX、SI、DI、BP、SP。

AL与AH、BL与BH、CL与CH、DL与DH分别对应于AX、BX、CX和DX的低8位与高8位。

专用寄存器

   指令指针: IP(16位)。

   标志寄存器: 没有助记符(FLAGS 16位)。

段寄存器

   段寄存器:CS、DS、ES、SS。

内存分段:80x86采用分段内存管理机制,主要包括下列几种类型的段:

    • 代码段:用来存放程序的指令序列。
    • 数据段:用来存放程序的数据。
    • 堆栈段:作为堆栈使用的内存区域,用来存放过程返回地址、过程参数等。

物理地址与逻辑地址

    • 物理地址:内存单元的实际地址,也就是出现在地址总线上的地址。
    • 逻辑地址:或称分段地址。
    • 段地址与偏移地址都是16位。
    • 系统采用下列方法将逻辑地址自动转换为20位的物理地址:

物理地址 = 段地址 ×  16  + 偏移地址

    • 每个内存单元具有唯一的物理地址,但可由不同的逻辑地址描述。

与数据有关的寻址方式

立即寻址方式

立即寻址方式所提供的操作数紧跟在操作码的后面,与操作码一起放在指令代码段中。立即数可以是8位数或16位数。如果是16位数,则低位字节存放在低地址中,高位字节存放在高地址中。

    例:MOV  AL,18

    指令执行后,(AL)= 12H

寄存器寻址方式

在寄存器寻址方式中,操作数包含于CPU的内部寄存器之中。这种寻址方式大都用于寄存器之间的数据传输。

例3:MOV  AX,BX

   如指令执行前(AX)= 6789H,(BX)= 0000H;则指令执行后,(AX)= 0000H,(BX)保持不变。

直接寻址方式

直接寻址方式是操作数地址的16位偏移量直接包含在指令中,和指令操作码一起放在代码段,而操作数则在数据段中。操作数的地址是数据段寄存器DS中的内容左移4位后,加上指令给定的16位地址偏移量。直接寻址方式适合于处理单个数据变量。

寄存器间接寻址方式

在寄存器间接寻址方式中,操作数在存储器中。操作数的有效地址由变址寄存器SI、DI或基址寄存器BX、BP提供。

如果指令中指定的寄存器是BX、SI、DI,则用DS寄存器的内容作为段地址。

如指令中用BP寄存器,则操作数的段地址在SS中,即堆栈段。

 

猜你喜欢

转载自blog.csdn.net/weixin_38022166/article/details/85603686