PC硬件04章汇编语言基础:寻址方式.ppt
《PC硬件04章汇编语言基础:寻址方式.ppt》由会员分享,可在线阅读,更多相关《PC硬件04章汇编语言基础:寻址方式.ppt(48页珍藏版)》请在三一办公上搜索。
1、1,预备知识,2,CPU、寄存器、存储器,8086/8088 CPU的结构,3,8086/8088 CPU的结构,内存,外设I/O,DBABCB,数据总线DB地址总线AB控制总线CB,通用寄存器,指针与变址寄存器,段寄存器,标志 寄存器,4,8086/8088 CPU的结构,内存,外设I/O,DBABCB,数据总线DB地址总线AB控制总线CB,通用寄存器,指针与变址寄存器,段寄存器,取指(令),译码,取数(数据或地址),执行,标志 寄存器,5,CPU执行程序的过程,从内存取指令,执行指令,从内存取指令,执行指令,从内存取指令,执行指令,传统CPU执行指令的过程,现代CPU执行指令的过程,6,8
2、086/8088 CPU的寄存器,8086/8088的寄存器分为4种类型:(1)通用寄存器(2)指针和变址寄存器(3)段寄存器(4)标志寄存器,7,(1)通用寄存器,8,(2)指针与变址寄存器,9,(3)段寄存器,10,(4)标志寄存器,标志寄存器长度为16位,其中9个位有定义。,溢出overflow Flag,方向direction Flag,中断interrupt Flag,符号symbol,-negative,+positive,零zero,辅助进位Auxiliary Carry Flag,奇偶parity,偶even,奇odd,进位carry,TF陷阱,单步trap,11,CF,Car
3、ry Flag,进位标志 两数相加,最高位向前位的进位;或两数相减最高位向前位的借位 举例:,有进位CF=1,有借位CF=1,两数相加,两数相减,2,12,AF,Auxiliary Carry Flag辅助进位标志(半进位)两数相加,第3位向前位的进位;或两数相减第3位向前位的借位 举例:,0000 10010001 10000001 0001,+,0000 00000000 00011111 1111,两数相加,有辅助进位AF=1,有辅助借位AF=1,两数相减,2,13,PF,Parity Flag,奇偶标志算术或逻辑运算结果的低8位中含有1的位数是偶数时:PF=1;是奇数时:PF=0 举例
4、:,1000 0101 1010 11001001 1101 1001 01111000 0101 1000 0100,AND,运算结果AL中有2个“1”,偶性,结果为:PF=1,14,ZF,Zero Flag 零标志计算处理结果为0,则ZF为1.举例:,1111 11110000 00010000 0000,+,进位1,相加结果为0,ZF=1,相加结果有进位,CF=1,15,SF,Sign Flag,符号标志 操作结果的符号位(即最高位的状态),结果为正SF=0,为负SF=1 举例:,1000 0101 1010 11001001 1101 1001 01111000 0101 1000 0
5、100,AND,结果为负:SF=1,16,OF,Overflow Flag,溢出标志算术操作,结果超过目标所能容纳的范围举例:,0111 1110(+126)0000 0011(+3)1000 0001(-127),+,进位到符号位,值被改变,溢出,CF=1,17,IFinterrupt中断允许标志(允许中断否)DF direction方向标志(存取方向)TF trap 陷阱标志,单步标志(用于调试程序),标志位在汇编语言程序设计中非常重要,必须掌握好,18,中为英文全拼或简拼(为简化部分),单词中的大写部分为简写所取字符。,标志名中文标志为1时标志为0时OFOverflow Flag 溢出标
6、志ovOVerflow nvNot oVerflowDFDirection Flag方向dnDowNupUPIFInterrupt Flag中断eiEnable ItdiDisable ItSFSign Flag符号ngNeGative signplPLus signZFZero Flag零zrZeRo nzNot ZeroAFAuxiliary carry Flag辅进位acAuxiliary CarrynaNot AuxPFParity Flag奇偶校验 peParity EvenpoParity OddCFCarry Flag 进位 cyCarrYncNot Carry,19,debug
7、中查看状态寄存器,debug中查看状态寄存器 of(溢出)df(方向)if(中断)sf(符号)zf(零)af(辅助进位)pf(奇偶)cf(进位)为1的时候 ov(OVerflow)dn(DowN)ei(Enable Interrupt)ng(NeGtive)zr(ZeRo)ac(Auxiliary Carry)pe(Parity Even)cy(CarrY)为0的时候 nv(Not oVerflow)up(UP)di(DIsable interrupt)pl(PLus)nz(Not Zero)na(Not Auxiliary)po(Parity Odd)nc(Not Carry),20,3.2
8、.1 存储器的分段结构,21,第四章 汇编语言,一、寻址方式(8086CPU)(80X86CPU),22,通用寄存器,8086,Accumulator 累加器Base 基址寄存器Count 计数寄存器Data 数据寄存器Stack pointer 堆栈指示器Base pointer 基址指示器Source index 源变址器Destination index 目的变址器,23,通用寄存器,80486,8086,Accumulator 累加器Base 基址Count 计数Data 数据Stack pointer 堆栈指示器Base pointer 基址指示器Source index 源变址器D
9、estination index 目的变址器,24,通用寄存器,80486,8086,Accumulator 累加器Base 基址Count 计数Data 数据Stack pointer 堆栈指示器Base pointer 基址指示器Source index 源变址器Destination index 目的变址器,指示器和变址寄存器访问内存必须指出要访问的内存单元地址,这些地址值会增加指令的长度。把地址存放在特定的寄存器中,则指令中只要给出这些寄存器的名称即可,它们是:变址寄存器 指针寄存器 SI DI SP BP 与 DS 联用 与 SS 联用 数据段寄存器 堆栈段寄存器,数据段寻址,堆栈段
10、寻址,25,8086是16位CPU内部寄存器和内部数据线、外部数据线均为16位 地址线20位,可直接寻址 1MB。(220=1MB)如何使用 16 位寄存器生成 20 位地址呢?存储器 分段,使用段寄存器CS,DS,SS,ES存储段基址*将 1 MB空间分为若干段,每段 64 KB(216=64K)*每段的起始地址值为 1MB空间中任一个能被 16 整除的地 址值,即每段起始地址值的低 4 位恒为 0(二进制数)。*物理地址由二部分组成:段起始地址 相对段起始地址的偏移量*段可以相互重叠。故存储器分段方案众多。,存储器分段,段基址与内存单元的距离偏移地址,段起始地址,物理地址=段基址左移4位+
11、偏移量,26,8086是16位CPU内部寄存器和内部数据线、外部数据线均为16位 地址线20位,可直接寻址 1MB。(220=1MB)如何使用 16 位寄存器生成 20 位地址呢?将 1 MB空间分为若干段,每段 64 KB(216=64K)使用段寄存器CS,DS,SS,ES 存储段基址,存储器分段,27,3.2.2 实际物理地址的产生,举例:,CS=9482,IP=2350,实际地址为:1001 0100 1000 0010 0010 0011 0101 00001001 0110 1011 0111 0000,一个实际地址可以对应多个逻辑地址.,+,CS=9482,IP=2350,物理地址
12、,28,存储器 分段,例如,某个段寄存器内容为 C018H,即表示该段物理地址从 C018 0 H 开始,该段最后一个地址为:C 0 1 8 0 H+F F F F H=D 0 1 7 F H,64KB,29,存储器 分段,存储器分段从 8086 开始使用段寄存器,(CS)+0000,(DS)+0000,(SS)+0000,(ES)+0000,代码段共64K 字节,附加段共64K 字节,堆栈段共64KB 字节,数据段共64KB字节,重叠部分,存储器分段可以相互重叠,.,1MB,段末地址(CS)+0ffffH,段末地址(ES)+0ffffH,64KB,64KB,30,寻址方式(8086指令集),
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PC 硬件 04 汇编语言 基础 寻址 方式

链接地址:https://www.31ppt.com/p-6513882.html