一 汇编入门 精髓(转)寄存器和寻址方式
2010-03-20 13:01
寄存器和寻址方式
寄存器,在 8086/8088 里,有三组共 13 个 16 位寄存器.
寄存器,从名字上看,可以知道,它就象书店的行包寄存处,寄存器的名字就象寄
存处发给用户取回自已物件的标志牌子,表示物件的存放地址.
寄存器的内部给构都相同,只不过是一个二字节或一字节的存储空间,别看他
们小,作用可大了,所有电脑的运算,都要从他们过关,因为他们的处理速度快嘛.为
了区分和准确运用,就要给他们进行科学的分组和起名.
第一组,数据寄存器,AX,BX,CX,DX.
其中,X 表示一个未知数,那么这些寄存器都可以用来存放数据,ABCD,虽说都可
以理解为一个顺序号,但是,A 还是加法 ADD 的简称,所以 AX 叫累加器,B 是基地
址的简称,所以 BX 可以叫基地址寄存器,C 是计数器的简称,所以 CX 可以叫做计
数器.D 是数据 DATA 的简称,所以 DX 可以叫数据寄存器.这四个寄存都可以按
高八位和低八位分成两个寄存器:AH,AL,BH,BL,CH,CL,DH,DL.
第二组,地址指示和变址寄存器,SI,DI,BP,SP.
它们用来表示一个地址偏移,或用来表示一个地址的变化状况.
SI,DI 都可以表示变址,在串操作中,SI 和 DI 表示源和目的操作数的指示器,快速
记忆方法:SI 联想饮水思源的思(谐音 SI),DI 联想目的(谐音 DI).
BP,SP 的 P 表示堆栈专用,BP 表示基地址专用,SP 则是堆栈顶指示器.
其中,BP,SI,DI 还可以兼作数据寄存器.SP 则只能和堆栈绑定.
第三组,段寄存器,CS,SS,DS,ES.
它们用来存放 CPU 可以直接访问的四个当前段的段首地址.CS 代码段,SS 堆栈
段,DS 数据段,ES 附加段.其中,在表示地址时,CS 和指令指示器 IP 绑定使用,SS
和 BP 绑定.DS 为 SI,DI,BX 共用.
第四组,指令指示器,IP,这是 CPU 自动引用的,表示下一次要从主存取出的指
令的偏移.
寻址方式
寻址方式分为六种,(这是教材里讲的).
1,立即寻址, 数据的本身在代码段.用于赋初值.
2,直接寻址, 数据的偏移在代码段,用于变量名.
3,寄存器寻址, 数据的本身在寄存器.用寄存器名表示.
4,寄存器相对寻址, 数据的偏移在寄存器.注意:BP 和 SS 绑定.DS 为 SI,DI,BX
共用.
5,变址寻址, 数据的偏移在一个寄存器里,并要加上一个偏移量.注意:BP
和 SS 绑定.DS 为 SI,DI,BX 共用.
6,基址加变址寻址, 数据的偏移放在两个寄存器中 ,并要加上一个偏移量.注
意:BP 和 SS 绑定.DS 为 SI,DI,BX 共用.BX 为 DS 段的基址专用.
寻址方式是汇编语言的重点和难点。请按如下思路学习:
1. 操作数可以存在什么地方?
⑴ 操作数存在于指令代码中,处理器译码时就立即获得了这个操作数,这就
是立即(数)寻址方式。汇编指 令中,这个立即数(操作数)以常量形式出
现。MOV EAX,94H