80X86汇编语言程序设计 - 8086 - 8088寻址方式和指令系统

2018-12-29 23:17

80X86汇编语言程序设计

第二章 8086/8088寻址方式和指令系统(3~20)

一.8086/8088寄存器组:

(14个16位寄存器,8个8位寄存器)

1.数据寄存器:AX(AH.AL). AX和AL是累加器。用累加器进行计算操作时间最短。 BX(BH.BL). BX又叫基址寄存器。唯一作为存储器指针的寄存器。 CX(CH.CL). CX控制循环的次数。CL保存移位的位数。 DX(DH.DL). DX用于做32位乘除法时,存放被除数或保留余数。 2.指针寄存器:SP堆栈指针. 保存堆栈指针栈顶地址。 BP基址指针. 3.变址寄存器:SI源地址. DI目的地址.

变址和指针寄存器主要用于存放某个存储单元地址的偏移,或某组存储单元开始地址的偏移,即

作为存储器指针使用。

通用寄存器由数据寄存器.指针寄存器.变址寄存器构成。

4.控制寄存器:IP指令指针. 指令指针IP给出接着要执行的指令在代码段中的偏移。

FLAG标志寄存器.包含了9个标志,主要用于反映处理器的状态和运算结果的某些特征。

(1)运算结果标志

进位标志CF(Carry F);零标志ZF(Zero F);符号标志SF(Sign F);溢出标志OF(Over F);奇偶标志PF(1的个数为偶数,则PF被置1);辅助进位标志AF; (2)状态控制标志

方向标志DF;中断允许标志IF;跟踪标志TF。

5.段寄存器: CS代码段.

DS数据段.

SS堆栈段. ES附加段.

二. 存储器分段和地址的形成: 1.存储单元的地址和内容

地址是用二进制数来表示的,它是无符号整数,书写格式为十六进制数。

16位二进制数可以表示2的16次方,也就是0~65535的地址范围。65536个字节单元的存储容量是64K。一个存储单元中存放的信息成为该存储单元的内容。

字单元的地址采用它的低地址来表示,并采用“高高低低”的原则。四个连续的字节单元就构成了一个双字单元。

2.存储器地址的分段及物理地址的形成

8086/8088 CPU有20根地址线,可直接寻址的物理地址为2的20次方也就是1M字节(用16进制数表示1M字节的地址范围是00000~FFFFF)。所以,要访问1M字节空间的存储器必须有20位地址。 CPU采用存储器地址分段的办法来提供20位地址。从0地址开始,每16个字节为一小段(16的倍数)。

IBMPC机对段的起始地址有所限制,段不能起始于任意地址,而必须从任一小段的首地址开始。 在16进制表示的地址中,最低位是0(即20位地址的低4位为0)。{00000,00010,00020,00030,…000F0,…FFFE0,FFFF0,}

- 在1M字节的存储器里,每一个存储单元都有一个唯一的20位地址。称为:该存储单元的

物理地址。

把存储单元的地址与所在段的起始地址的差称为段内偏移,称为偏移。 在整个1M地址空间中,存储单元的物理地址等于段起始地址加上偏移。

物理地址=段*16+偏移

20位物理地址=16位段地址+16位偏移地址。

指令中不使用物理地址,而是使用逻辑地址,由总线接口单元BIU按需要根据段值和偏移自动形成20位物理地址。 3.段寄存器的引用

计算机在取指令的时候,自动引用代码段寄存器CS,再加上由IP所给出的16位偏移,得到要取指令的物理地址。

当涉及到一个堆栈操作时,则自动引用堆栈寄存器SS,再加上由SP所给出的16位偏移,得到堆栈操作所需要的物理地址。当偏移涉及BP寄存器时,缺省引用段寄存器SS。

在存取一个普通存储器操作数时,则自动选择数据寄存器DS或附加段寄存器ES,再加上16位偏移,得到存储器操作数的物理地址。 三.8086/8088的寻址方式:

计算机是通过执行指令序列来解决问题的,因而每种计算机都有一组指令集提供给用户使用,这组指令集就称为计算机的指令系统。计算机中的指令由操作码字段和操作数字段两部分组成。 汇编语言是一种符号语言,它用助记符来表示操作码,用符号或符号地址来表示操作数或操作数地址。它与机器指令一一对应。

寻址方式:表示指令中用于说明操作数所在的地址的方法 8086/8088有七种基本的寻址方式,下面介绍这七种寻址方式: 1.立即寻址方式

操作数就包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。(源操作数)这种操作数称为立即数。 例如:指令:mov ax,1234H mov al,5 mov bx,3064H 2.寄存器寻址方式

操作数在CPU内部的寄存器中,指令指定寄存器号。对于16位操作数,寄存器可以是:AX.BX.CX.DX.SI.DI.SP.BP等。对于8位操作数,寄存器可以是:AH.AL.BH.BL.CH.CL.DH.DL等。这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数,因而可以取得较高的运算速度。 例如:mov ax,bx mov si,ax mov al,dh 3.直接寻址方式

操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)。操作数一般存放在数据段。所以操作数的地址由DS加上指令中直接给出的16位偏移得到。 例如:mov ax,[8054] DS=2000H 在汇编语言指令中,可以用符号地址代替数值地址 例如:mov ax,[value] mov ax,value

如value在附加段中,则应指定段超越前缀如下: mov ax,es:value mov ax,es:[value]

直接寻址方式常用于处理单个寄存器变量的情况。它可以实现在64K字节的段内寻找操作数。直接寻址的操作数通常是程序使用的变量。

注意立即寻址和直接寻址书写表示方法上的不同,直接寻址的地址要放在方括号中。在源程序中,

往往用变量名表示。 4.寄存器间接寻址方式

操作数在存储器中,操作数有效地址在SI.DI.BX.BP这四个寄存器之一种。在一般情况下,如果有效地址在SI.DI.BX中,则以DS段寄存器之内容维断指。如果有效地址在BP中,则以SS段寄存器之内容为段值。

例如:mov ax,[si] (DS)=5000H (SI)=1234H 指令中叶可指定段超越前缀来取得其他段中的数据如: mov ax,es:[bx] mov [si],ax mov [bp],cx mov si,ax 5.寄存器相对寻址方式

操作数在存储器中,操作数的有效地址是一个基址寄存器(BX.BP)或变址寄存器的(SI.DI)内容加上指令中给定的8位或16位位移量之和。 即:

EA(有效地址)=BX.BP.SI.DI+8位(16位)位移量

在一般情况下,如果SI.DI.BX之内容作为有效地址的一部分,那么引用的段寄存器是DS。如果BP之内容作为有效地址的一部分,那么引用的段寄存器是SS。 例如mov ax,[di+1223H] DS=5000H, DI=3678H 物理地址=50000+3678+1223=5489BH mov bx,[BP-4] mov es:[BX+5],AL

指令mov ax,[SI+3]与mov ax,3[SI]是等价的。 6.基址加变址寻址方式

操作数在存储器中,操作数的有效地址由:基址寄存器之一的内容与变址寄存器之一的内容相加 即 :

EA=BX BP+SI DI

在一般情况下,如果BP之内容为有效地址的一部分,则以SS之内容为段值,否则以DS之内容为段值。

例如mov ax,[BX][DI] mov ax,ES:[BX+SI]

这种寻址方式适用于数组或表格处理。 下面两种表示方法是等价的: mov ax,[BX+DI] mov ax,[DI][BX]

7.相对基址加变址寻址方式

操作数在存储器中,操作数的有效地址由:基址寄存器之一的内容与变址寄存器之一的内容及指令中给定的8位或16位位移量相加得到。 即:

EA=BX BP+SI DI+8位或16位位移量

在指令中给定的8位或16位位移量采用补码形式表示。在计算有效地址时,如果位移量是8位,那么被带符号扩展成16位。

当所得的有效地址超过FFFFH时,就取其64K的模。 例如mov ax,[BX+DI-2]

相对基址加变址这种寻址方式的表示方法多种多样,下面四种表示方法均是等价的: mov AX,[BX+DI+1234H] mov AX,1234H[BX+DI] mov AX,1234H[BX][DI] mov AX,1234H[DI][BX] 四.8086/8088指令系统

8086/8088的指令系统可分为如下六个功能组:

1.数据传送;2.算术运算;3.逻辑运算;4.串操作;5.程序控制;6.处理器控制. 汇编语言中指令语句的一般格式。指令语句可由四部分组成,一般格式如下: 【标号:】指令助记符【操作数1【,操作数2】】【;注释】 (一)数据传送指令 1.传送指令

格式: MOV DST,SRC

源操作数(SRC)可以是累加器(Al.AH).寄存器.存储单元以及立即数,而目的操作数(DST)可以是累加器.寄存器和存储单元,不能是立即数。传送不改变源操作数。数据传送指令能实现下列传送功能:

(1)CPU内部寄存器之间的数据传送。 例如:MOV AH,AL MOV DL,DH MOV BP,SP MOV AX,CS

注意:源操作数和目的操作数不能同时是段寄存器(CS.SS.DS.ES)代码段寄存器CS不能作为目的操作数,指令指针IP既不能作为源操作数,也不能作为目的操作数。注意,这种例外永远存在。


80X86汇编语言程序设计 - 8086 - 8088寻址方式和指令系统.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:上市公司财务舞弊的动因及防范措施

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: