欢迎来到天天文库
浏览记录
ID:18439363
大小:220.00 KB
页数:29页
时间:2018-09-17
《80x86汇编语言程序设计_8086_8088寻址方式和指令系统》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、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目的地址.变址和指针寄存器主要用于存放某个存储单元地址的偏移,或某组
2、存储单元开始地址的偏移,即作为存储器指针使用。通用寄存器由数据寄存器.指针寄存器.变址寄存器构成。4.控制寄存器:IP指令指针.指令指针IP给出接着要执行的指令在代码段中的偏移。FLAG标志寄存器.包含了9个标志,主要用于反映处理器的状态和运算结果的某些特征。(1)运算结果标志进位标志CF(CarryF);零标志ZF(ZeroF);符号标志SF(SignF);溢出标志OF(OverF);奇偶标志PF(1的个数为偶数,则PF被置1);辅助进位标志AF;(2)状态控制标志方向标志DF;中断允许标志IF;跟踪标志TF。5.段寄存器:CS代码段.DS数据段.SS堆栈段.ES附加段.二.存储器分段和地
3、址的形成:1.存储单元的地址和内容地址是用二进制数来表示的,它是无符号整数,书写格式为十六进制数。16位二进制数可以表示2的16次方,也就是0~65535的地址范围。65536个字节单元的存储容量是64K。一个存储单元中存放的信息成为该存储单元的内容。字单元的地址采用它的低地址来表示,并采用“高高低低”的原则。四个连续的字节单元就构成了一个双字单元。2.存储器地址的分段及物理地址的形成8086/8088CPU有20根地址线,可直接寻址的物理地址为2的20次方也就是1M字节(用16进制数表示1M字节的地址范围是00000~FFFFF)。所以,要访问1M字节空间的存储器必须有20位地址。CPU采
4、用存储器地址分段的办法来提供20位地址。从0地址开始,每16个字节为一小段(16的倍数)。IBMPC机对段的起始地址有所限制,段不能起始于任意地址,而必须从任一小段的首地址开始。在16进制表示的地址中,最低位是0(即20位地址的低4位为0)。{00000,00010,00020,00030,…000F0,…FFFE0,FFFF0,}在1M字节的存储器里,每一个存储单元都有一个唯一的20位地址。称为:该存储单元的物理地址。把存储单元的地址与所在段的起始地址的差称为段内偏移,称为偏移。在整个1M地址空间中,存储单元的物理地址等于段起始地址加上偏移。物理地址=段*16+偏移20位物理地址=16位段
5、地址+16位偏移地址。指令中不使用物理地址,而是使用逻辑地址,由总线接口单元BIU按需要根据段值和偏移自动形成20位物理地址。3.段寄存器的引用计算机在取指令的时候,自动引用代码段寄存器CS,再加上由IP所给出的16位偏移,得到要取指令的物理地址。当涉及到一个堆栈操作时,则自动引用堆栈寄存器SS,再加上由SP所给出的16位偏移,得到堆栈操作所需要的物理地址。当偏移涉及BP寄存器时,缺省引用段寄存器SS。在存取一个普通存储器操作数时,则自动选择数据寄存器DS或附加段寄存器ES,再加上16位偏移,得到存储器操作数的物理地址。三.8086/8088的寻址方式:计算机是通过执行指令序列来解决问题的,
6、因而每种计算机都有一组指令集提供给用户使用,这组指令集就称为计算机的指令系统。计算机中的指令由操作码字段和操作数字段两部分组成。汇编语言是一种符号语言,它用助记符来表示操作码,用符号或符号地址来表示操作数或操作数地址。它与机器指令一一对应。寻址方式:表示指令中用于说明操作数所在的地址的方法8086/8088有七种基本的寻址方式,下面介绍这七种寻址方式:1.立即寻址方式操作数就包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。(源操作数)这种操作数称为立即数。例如:指令:movax,1234Hmoval,5movbx,3064H2.寄存器寻址方式操作数在CPU内部的寄存器中,指令指定
7、寄存器号。对于16位操作数,寄存器可以是:AX.BX.CX.DX.SI.DI.SP.BP等。对于8位操作数,寄存器可以是:AH.AL.BH.BL.CH.CL.DH.DL等。这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数,因而可以取得较高的运算速度。例如:movax,bxmovsi,axmoval,dh3.直接寻址方式操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)。操作数一般存放
此文档下载收益归作者所有