版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章微型计算机的结构3.1微型处理机的结构(8086/8088)3.2存储器(组织)3.3寻址方式3.48086/8088指令系统(概括)第三章微型计算机的结构13.1微型处理机的结构(8086/8088)1、8086/8088CPU的内部结构2、8086/8088的寄存器和标志21、8086/8088CPU的内部结构3内部寄存器
IP
ES
SSDSCS总线控制8086总线EU控制逻辑∑ALU标志寄存器(F)AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列执行单元(EU)总线接口单元(BIU)16位20位16位8位CPU内部总线4CPU执行程序的过程从内存取指令执行指令从内存取指令执行指令从内存取指令执行指令传统CPU执行指令的过程现代CPU执行指令的过程52、8086/8088的寄存器和标志8086/8088的寄存器分为4种类型:(1)通用寄存器(2)指针和变址寄存器(3)段寄存器(4)标志寄存器6(1)通用寄存器通用寄存器的主要功能:保存CPU分析和执行时产生的中间结果。访问内存速度远远低于CPU的运算速度。7(2)指针与变址寄存器8(3)段寄存器9(4)标志寄存器标志寄存器长度为16位,其中9个位有定义。10CF,CarryFlag,进位标志,两数相加,最高位向前的进位;或两数相减最高位向前的借位,举例:100000011000000000000001+1100000001000000111111111-111AF,AuxiliaryCarryFlag,辅助进位标志,两数相加,第3位向前的进位;或两数相减第3位向前的借位,举例:000010010001100000010001+000000000000000111111111-注意:CF是最高位向前的进位或借位,具体第几位由参与运算的数据长度决定;而AF固定是第3位向第4位。12PF,ParityFlag,奇偶标志,两数操作(算术或逻辑),结果的低8位中含有1的位数是偶还是奇.举例:100001011010110010011101100101111000010110000100AND结果:PF=113ZF,ZeroFlag,零标志,操作结果的为0则ZF为1.举例:111111110000000100000000+进位1操作结果为0,ZF=114SF,SignFlag,符号标志,操作结果的符号位(即最高位的状态).举例:100001011010110010011101100101111000010110000100AND结果:SF=115OF,OverflowFlag,溢出标志,算术操作,结果超过目标所能容纳的范围.举例:01111110(+126)00000011(+3)10000001(-127)+如何判断运算结果是否溢出?001111110(+126)000000011(+3)010000001(-127)+采用双符号位16
还有三个标志位:IF,DF,TF暂时不讲,等用到时再讲.标志位在汇编语言程序设计中非常重要,必须掌握好.173.2存储器1、存储器的分段结构2、实际地址的产生181、存储器的分段结构为何采用分段结构?19逻辑地址:由段基址和段内偏移地址组成的地址,
段基址和段内偏移地址都是16位的无符号二进制数,在程序设计时使用。如CS=9482H,IP=2350H,可以表示为9482:2350。实际地址(物理地址):存储器的绝对地址(20位的实际地址),范围从00000H~FFFFFH,是由CPU访问存储器时由地址总线发出的地址。实际地址=段基址×10H(16)+偏移地址2、实际地址的产生20举例:CS=9482H,IP=2350H,实际地址为:1001010010000010001000110101000010010110101101110000一个实际地址可以对应多个逻辑地址.21内部寄存器
IP
ES
SSDSCS总线控制8086总线EU控制逻辑∑ALU标志寄存器(F)AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列执行单元(EU)总线接口单元(BIU)16位20位16位8位CPU内部总线22操作类型正常使用(隐含)段基址可替换段地址偏移地址物理地址计算取指令CS无IP(CS)16d+(IP)堆栈操作SS无SP(SS)16d+(SP)BP间址SSCS,DS,ES有效地址EA(SS)16d+EA存取变量DSCS,ES,SS有效地址EA(DS)16d+EA源字符串DSCS,ES,SSSI(DS)16d+(SI)目标字符串ES无DI(ES)16d+(DI)233.3寻址方式3.3.1操作数的种类3.3.2寻址方式3.3.4段更换和段跨越3.3.5有效地址的计算时间指令中提供操作数或操作数地址的方式。243.3.1操作数的种类(1)立即操作数:指令要操作的数据在指令代码中,MOVAL,10H;指令码B010.(2)存储器操作数:指令要操作的数据在存储器(内存)中,MOVAL,[1234H];指令码A03412.(3)寄存器操作数:指令要操作的数据在CPU的寄存器中,MOVAL,BL;指令码88D8.(4)I/O端口操作数,INAL,20H;指令码E420.253.3.2寻址方式1.固定寻址2.立即寻址3.寄存器直接寻址4.存储器寻址(存储器直接寻址,寄存器间接寻址,基址寻址,变址寻址,基址变址寻址)5.数据串寻址(暂不讲)261.固定寻址指令要操作的数据在指令中并没有明确给出,但隐含在指令中.例:
MULBL;AL*BL=>AX在该指令中,AL和AX并未给出.272.立即寻址指令要操作的数据包含在指令码中.例:MOVAX,1234H其指令码为B83412.283.寄存器直接寻址在指令(码)给出寄存器的名字(编码),要操作的数据在该寄存器中.INCCX;指令码41INCDX;指令码42INCBX;指令码43INCSP;指令码44INCBP;指令码45294.存储器寻址在存储器寻址方式中,要寻址的数据位于存储器(内存)中,指令中直接或间接地给出存储器操作数的地址.存储器寻址包括:
①存储器直接寻址②寄存器间接寻址③基址寻址④变址寻址⑤基址变址寻址30①存储器直接寻址指令中直接给出操作数所处的存储单元的偏移地址.这个地址即有效地址。例如:MOVAL,[1000H];指令码:A00010MOVBX,[1000H];指令码:8B1E0010
执行结果?AL=34HBX=1234H31②寄存器间接寻址(1)操作数位于位于内存中,操作数的有效地址位于某个寄存器中,在指令(码)中给出的是该寄存器的名字(编码).举例:MOVAL,[BX];指令码:8A07MOVAX,[SI];指令码:8B04假定BX=1001H,SI=1000H
则:结果,AL=12H,AX=1234H32②寄存器间接寻址(2)可以用于寄存器间接寻址的寄存器有:BX[BX]SI[SI]DI[DI]33
在基址寻址中,操作数位于位于内存中,操作数的有效地址由基址寄存器BX或BP与一个位移量相加给出,在指令(码)中给出的是该基址寄存器的名字(编码)及位移量.举例:MOVAL,[BX+1234H];指令码:8A873412假定BX=1000H
则:结果,AL=78H③基址寻址(1)34③基址寻址(2)基址寻址的格式:[BX+位移量][BP+位移量]位移量的范围:补码表示的8位或16位(-128~+127,-32768~+32767)35
④变址寻址(1)在变址寻址中,操作数位于位于内存中,操作数的有效地址由变址寄存器SI或DI与一个位移量相加给出,在指令(码)中给出的是该变址寄存器的名字(编码)及位移量.举例:MOVAL,[SI+1234H];指令码:8A843412假定SI=1000H则:结果,AL=78H36④变址寻址(2)变址寻址的格式:[SI+位移量][DI+位移量]位移量的范围:补码表示的8位或16位(-128~+127,-32768~+32767)37⑤基址变址寻址(1)在基址变址寻址中,操作数位于位于内存中,操作数的有效地址由基址寄存器BX或BP与变址寄存器SI或DI及一个位移量相加给出,在指令(码)中给出的是寄存器的名字(编码)及位移量.举例:MOVAL,[BX+SI+1234H];指令码:8A803412假定:BX=1000H,SI=2000H则:结果,AL=78H38⑤基址变址寻址(2)基址变址寻址的格式:[BX+SI+位移量][BX+DI+位移量][BP+SI+位移量][BP+DI+位移量][BX+SI][BX+DI][BP+SI][BP+DI]错误的写法:[BX+BP][SI+DI]位移量的范围:补码表示的8位或16位(-128~+127,-32768~+32767)39需要注意的问题存储器寻址方式中的段地址寻址方式中不能出现的情况40存储器寻址方式中的段地址在存储器寻址方式中只给出了偏移地址,其段地址是隐含的,一般情况下,是DS,只有特殊情况下是SS.特殊情况:在基址寻址和基址变址寻址方式下,基址寄存器是BP.请看下面的例子:41假定DS=1000H,SS=2000H,BP=0100H,BX=0100H,如下指令在执行完后的结果分别是什么?①MOVAX,[BX+100H]②MOVAX,[BP+100H]42寻址方式中不能出现的情况立即数只能用于源操作数寻址除源操作数为立即寻址方式外,其中一个操作数的寻址方式必须是寄存器直接寻址,即两个操作数不能同时为存储器操作数例如MOVdata1,12hMOVdata1,data2错
433.3.4段更换和段跨越(1)当要操作的数据不在隐含段中时,就需要段更换或段跨越.要寻址的数据在2000H段的0100H单元,而目前没有一个段寄存的值是2000H,就需要将2000H装入某个段寄存器,如DS,这就是段更换.
MOVAX,2000HMOVDS,AXMOVBX,0100HMOVAL,[BX]44当要操作的数据不在隐含段中时,就需要段更换或段跨越.要寻址的数据在2000H段的0100H单元,而目前CS段寄存的值是2000H,可在寻址操作数加一段跨越前缀,如CS:,这就是段跨越.MOVBX,0100HMOVAL,CS:[BX]3.3.4段更换和段跨越(2)453.3.5有效地址的计算时间存储器操作数的偏移地址。463.4指令系统共分为14类92种指令.(1)数据传送(8)循环控制(2)算术运算(9)调用与返回(3)逻辑运算(10)BCD调整(4)移位(11)输入输出(5)标志位操作
(12)中断处理(6)转移(13)外同步(7)数据串
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广州铁路职业技术学院单招职业技能笔试备考试题带答案解析
- 肿瘤患者护理特点与护理策略
- 基础护理工作总结与质量提升
- 2026年安徽工贸职业技术学院高职单招职业适应性测试备考试题带答案解析
- 财管课件音频
- 人工智能在临床决策支持系统中的应用
- 儿科护理工作方法与技巧
- 医院后勤保障工作创新成果汇报
- 口腔种植牙技术探讨
- 护理信息化建设与护理管理创新探讨
- 国家开放大学《刑事诉讼法学》形考任务2答案
- Python爬虫介绍课件
- 乡镇避孕药具培训资料
- 履带吊课件教学课件
- 煤矿返岗培训课件
- 医院法律法规专项培训实施计划方案
- 反渗透膜性能检测与维护流程
- 数字藏品授权协议书
- 头晕中西医课件
- 总经理2025年度总结参考(六篇)
- DB22∕T 3648-2024 取水井封井技术规范
评论
0/150
提交评论