欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年微机原理习题答案 .pdf

    • 资源ID:42702615       资源大小:180.86KB        全文页数:18页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年微机原理习题答案 .pdf

    微型计算机原理习题3(P117)参考答案(部分题号与教材有错位,请注意)为什么要研究8086/8088 微处理器及其系统?这比直接研究32 位微处理器及其系统有何优缺点?解:尽管 8086/8088 后续的 80286、80386、80486 以及 Pentium 系列 CPU结构和功能已发生很大变化,但从基本概念与结构以及指令格式上来讲,他们仍然是经典的8086/8088CPU的延续与提升。8086 CPU 有多少根数据线和地址线?它能寻址多少内存地址单元和I/O 端口?8088CPU又有多少根数据线和地址线?为什么要设计8088CPU?解:8086 CPU有 16 根数据线和20 根地址线,可寻址1MB存储单元和64KB的 I/O 端口。8088 CPU 有 16 位内部数据线和8 条外部数据总线,20 根地址线。8088 CPU 是 8086 CPU的向下兼容版,这样设计主要为了与INTEL 原有的 8 位外围接口芯片直接兼容。8086 CPU 内部按功能可分为哪两大部分?他们各自的主要功能是什么?解:从功能上讲,8086 可分为两个部分,即总线接口单元(bus interface unit,BIU)和执行单元(execution unit,EU)。总线接口单元(BIU)的功能是负责CPU与存储器或I/O 设备之间的数据传送。EU的功能只是负责执行指令;执行的指令从BIU 的指令队列缓冲器中取得,执行指令的结果或执行指令所需要的数据,都由 EU向 BIU 发出请求,再由 BIU 经总线控制电路对存储器或外设存取。8086 CPU 内部的总线接口单元BIU 由哪些功能部件组成?他们的基本操作原理是什么?解:BIU 内有 4 个 16 位的段地址寄存器CS、DS、SS和 ES,16 位指令指针IP,6 字节指令队列缓冲器,20 位地址加法器和总线控制电路。基本操作原理是BIU 要从内存取指令送到指令队列缓冲器;CPU执行指令时,总线接口单元要配合执行单元从指定的内存单元或者外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果传送到指定的内存单元或外设端口中。什么叫微处理器的并行操作方式?为什么说8086 CPU 具有并行操作的功能?在什么情况下名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 18 页 -8086 的执行单元EU才需要等待总线接口单元BIU 提取指令?解:并行操作,就是 CPU执行完 1 条指令后就可以立即执行下一条指令,而不需要像以往8 位CPU那样重复的进行先取指令和后执行的指令串行操作。16 位 CPU的这种并行操作的特点,提高了总线的信息传输效率和整个系统的执行速度。只有当遇到转移指令、调用指令或返回指令时,或者当某一条指令在执行过程中,需要频繁访问内存以至于总线接口单元没有空闲从内存将指令提取到指令队列中时,才需要等待总线接口单元BIU 提取指令。逻辑地址和物理地址有什么区别?为什么8086 微处理器要引入“段加偏移”的技术思想?段加偏移的基本含义又是什么?试举例说明。解:逻辑地址由16 位段地址和16 位段内偏移量(又称有效地址)组成,程序中指令必须通过逻辑地址访问内存。物理地址是由20 条地址线信号指示的内存地址,在电路中必须使用这20条物理的地址信号线访问内存。物理地址=段地址 16+有效地址。参考教材:P54 第 311 行 P56“2。段寄存器”的第1 段 P70“3。3。5 段加偏移寻址机制允许重定位”段加偏移的基本含义是:将段寄存器内容左移4 位后与16 位偏移地址相加。例:假设CS=FA00H,IP=0300H,这是物理地址为0FA300H。在微处理器中设置指令队列缓冲器有什么作用?8086 与 8088 CPU中的指令队列有何区别?解:指令队列缓冲器在执行指令的同时,可以从内存中取下面一条或几条指令,取来的指令就依次暂放在指令队列中。区别:8086 指令队列为6 个字节,8088 为 4 字节;8086 指令队列只要空出2 个,而 8088只要空出1 个指令字节时,BIU 便自动执行取指操作,直到填满为止。8086 CPU的基址寄存器BX和基址指针(或基址指针寄存器)BP有何区别?基址指针BP和堆栈指针SP在使用中有何区别?解:基址寄存器BX在查表指令XLAT中存放表的起始地址,而基址指针BP用来存放堆栈地址。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 18 页 -指针寄存器SP和 BP都用来指示存储位于当前堆栈段中的数据所在的地址,但SP和 BP在使用上有区别。入栈和出栈指令是由SP给出栈顶的偏移地址,故称为堆栈指针寄存器。而BP则是存放位于堆栈段中的一个数据区的基地址的偏移地址,故称为堆栈基址指针寄存器。段地址和段起始地址相同吗?两者是什么关系?8086 的段起始地址就是段基址吗?它是怎样获得的?解:不同。为了使8086/8088 CPU 能够寻址1MB内存空间,在其内部设计了一组16 位的段寄存器,用这些段寄存器的内容作为段地址,再由段寄存器左移4 位形成 20 位的段起始地址。8086 的段起始地址就是段基址。由段寄存器左移4 位形成 20 位的段基址。微处理器在实模式下操作时,段寄存器的用途是什么?解:为了使 8086/8088 CPU 能够寻址1MB内存空间,在其内部设计了一组16 位段寄存器,用这些段寄存器的内容作为段地址,再由段寄存器左移4 位形成 20 位的段起始地址,它们通常被称为段基址;这样,8086/8088 就有可能寻址1MB存储空间并将其分为若干个逻辑段,提供在内存中的重定位功能。在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和结束地址。(1)1000H (2)1234H (3)E000H (4)AB00H解:(1)起始地址:10000H 结束地址:10000H+FFFFH=1FFFFH(2)起始地址:12340H 结束地址:12340H+FFFFH=2233FH(3)起始地址:E0000H 结束地址:E0000H+FFFFH=EFFFFH(4)起始地址:AB000H 结束地址:AB000H+FFFFH=BAFFFH微处理器在实模式下操作,对于下列CS:IP 组合,计算出要执行的下条指令的存储器地址。(1)CS=1000H和 IP=2000H (2)CS=2400H和 IP=1A00(3)CS=1A00和 IP=B000H (4)CS=3456H和 IP=ABCDH解:(1)下条指令地址:10000H+2000H=12000H(2)下条指令地址:24000H+1A00H=25A00H(3)下条指令地址:1A000H+B000H=25000H(4)下条指令地址:34560H+ABCDH=3F12DH 8086在使用什么指令时,用哪个存储器保存记数值?解:在使用无条件重复指令REP时,CX寄存器用来保存记数值;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 18 页 -在使用循环控制指令LOOP 时,CX寄存器用来保存记数值。IP寄存器的用途是什么?它提供的是什么信息?解:简单地说,IP 寄存器指示即将执行的下一条指令的段内偏移地址。一般情况下,CPU每取一个指令字节,IP 就自动加1,从而保证程序的顺序运行。程序控制类指令改变IP 值,从而改变程序的运行顺序。8086的进位标志位有哪些运算指令来置位?解:当执行加法、减法、乘法指令、BCD调整指令、移位和循环指令都会影响进位标志,但使CF 置位的运算指令只有NEG 指令(STC不算运算指令)。如果带符号数FFH与 01H相加,会产生溢出吗?解:0FFH+01H=0H,所以不会产生溢出。某个数包含有5 个 1,它具有什么奇偶性?解:奇偶性为奇,标志PF=0 某个数为全0,它的零标志位为0 吗?(题目不好)解:不为0,零标志ZF=1用什么指令设置哪个标志位,就可以控制微处理器的INTR 引脚?解:用 STI 和 CLI 指令控制IF 标志,就可以控制微处理器的INTR引脚。微处理器在什么情况下才执行总线周期?一个基本的总线周期由几个状态组成?在什么情况下需要插入等待状态?解:为了从存储器中取得指令或者与一个存储单元或I/O 接口单元传送数据,需要它的总线接口单元执行一个总线周期。一个总线周期由T1、T2、T3和 T4这四个状态。由于外设或存储器的速度较慢,不能及时的配合CPU传送数据。这时,外设或存储器就会通过“READY”的信号线在T3状态启动之前向CPU发一个“数据未准备好”信号,表示他们还来不及同 CPU之间传送数据,于是,CPU会在 T3之后自动插入一个或多个附加的时钟周期TW,这个 TW就叫等待状态。什么叫做非规则字,微处理器对非规则字是怎样操作的?解:对内存中存放的字数据,其低位字节在奇数地址开始存放,称为非规则存放,存放的字叫非规则字。8086 对非规则字必须分两次访问。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 18 页 -8086对 1MB的存储空间是如何按高位库和低位库来进行选择和访问的?用什么控制信号来实现对两个库的选择?解:8086 的 1MB存储空间分为两个512KB的存储体,又称存储库,分别叫高位库和低位库,低位库与数据总线D7D0相连,该库中每个单元的地址均为偶数地址,高位库与数据总线D15D8相连,该库中每个单元的地址均为奇数地址。用 A0对低位库和用BHE对高位库实现选择控制。堆栈的深度由哪个寄存器确定?为什么说一个堆栈的深度最大为64kB?在执行一条入栈或出栈命令时,栈顶地址将如何变化?解:堆栈的深度由堆栈指针SP来确定。因为存储器中包括堆栈段在内的每一个逻辑段至多可包含64KB长的连续存储单元,所以一个堆栈的深度最大为64KB。执行 PUSH s 指令时,先SP SP 2,再 SS:SPS执行 POP d 指令时,先dSS:SP,再 SP SP+2 8086/8088CPU 对 RESET 复位信号的复位脉冲宽度有何要求?复位后内部寄存器的状态如何?解:RESET 复位信号的复位脉冲宽度不得小于4 个时钟周期。复位后各个寄存器状态如下:CS=0FFFFH,DS=ES=SS=0,F=0,指令队列清空。ALE 信号起什么作用?它在使用时能否被浮空?DT/R 信号起什么作用?它在什么情况下被浮置为高阻状态?解:它是 8086/8088 提供给地址锁存器8282/8283 的控制信号,高电平有效。ALE在使用时不能被浮空。在使用 8286/8287 作为数据总线收发器时,DT/R信号用来控制8286/8287 的数据传送方向。在 DMA 方式时,它被置为高阻状态。8086/8088CPU的哪些引脚采用了时分复用技术?哪些引脚具有两种功能?解:地址/数据总线 AD15AD0,地址/状态总线A19/S6A16/S3,BHE/S7采用了分时复用技术。MN/MX、DT/R、M/IO、RQ/GT1、RQ/GT0具有两种功能。8086/8088CPU的微机系统有哪两种工作方式?它们由什么引脚来实现控制?这两种工作方式的主要特点和区别如何?解:8086/8088 CPU 微机系统有最大和最小两种工作方式。他们由MN/MX 引脚实现控制。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 18 页 -MN/MX接电源电压,系统工作于最小方式,即单处理机系统,适合于较小规模的应用。MN/MX接地,系统工作于最大方式,一般包含两个或多个微处理器,这样就要解决主处理器和协处理器之间的协调问题以及对总线的共享控制问题。最大方式和最小方式的主要区别是外加有8288总线控制器。当 8086/8088 按最大方式操作时,8288 总线控制器主要提供什么功能?8086/8088 CPU 在最大方式下工作时有哪些专用引脚?它们的主要作用是什么?解:通过它对CPU发出的控制信号进行变换和组合,以得到对存储器和I/O 端口的读/写信号和对锁存器器8282 及对总线收发器8286 的控制信号,使总线控制功能更加完善。在最大方式下使用的专用引脚有:(1)QS1、QS0指令队列状态信号输出这两个信号组合起来提供了本总线周期的前一个时钟周期中指令队列的状态,以便于外部对8086/8088 内部指令队列的动作跟踪。(2)LOCK 总线封锁信号输出当 LOCK为低电平时,系统中其他主部件就不能占有总线。(3)RQ/GT1、RQ/GT0总线请求信号输入/总线这两个信号端可供CPU 以外的两个处理器用来发出使用总线的请求信号和接收CPU 对总线请求信号的回答信号。(4)S0、S1、S2状态信号,8288 根据这三个状态信号和CLK时钟信号组合输出各种总线控制信号。为什么要研究指令格式?8086/8088 微处理器有哪些基本的指令格式?解:指令格式是按指令系统的特定规范与要求精心设计的,了解指令格式,对完整的掌握一个成功设计的指令系统是十分必要的。基本指令格式有:无操作数指令、单操作数指令、双操作数指令在指令格式中,MOD 字段指定了什么信息?它和R/M字段确定的有效地址EA的计算方法共有多少种?解:MOD 字段给定指令的寻址方式,即规定是存储器或寄存器的寻址类型,并确定在存储器寻址类型时是否有位移量。它和 R/M字段确定的有效地址EA计算方法共有24 种名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 18 页 -说明某些机器语言指令中的D位和 W位是何作用?解:D表示来自/到寄存器的方向。D=1,表示由指令REG 字段所确定的某寄存器为目标;D=0,则表示该寄存器为源。W表示操作数为字或字节处理方式。W=1,表示为字;W=0,则为字节。假定指令是16 位模式指令,如果指令寄存器字段(REG)的信息为001,W字段为 0,试问寻址时选择什么寄存器?(题目自相矛盾)解:16 位模式与W字段为 0 相互矛盾!某机器语言16 位模式指令的R/M=001,MOD=00,试问该指令指定了哪种存储器寻址方式?解:指定了 BX+DI 存储器寻址方式何谓寻址方式?8086/8088 微处理器有哪几种主要的寻址方式?解:寻址方式即寻找操作数的方式。主要的寻址方式有:固定寻址、立即数寻址、寄存器寻址、存储器寻址、串操作指令寻址、I/O端口寻址方式,其中存储器寻址又可分为:基址寻址、变址寻址、基址加变址。此外,程序控制指令还有直接、相对、寄存器间接、存储器间接等寻址方式。试写出寻址存储器操作时计算有效地址EA的通式。解:EA=基址值(BX/BP)+变址值(SI/DI)+位移量 Disp(0/8/16位)指出 8086/8088 下列指令源操作数的寻址方式。(1)MOV AX,1200H (2)MOV BX,1200H(3)MOV BX,SI (4)MOV BX,SI+1200H(5)MOV BX+SI,AL (6)ADD AX,BX+DI+20H(7)MUL BL (8)JMP BX(9)IN AL,DX (10)INC WORD PTRBP+50H 解:(1)立即数寻址(2)存储器直接寻址(3)变址寄存器间接寻址(4)寄存器变址间接寻址(5)基址加变址寄存器间接寻址(6)基址加变址间接寻址(7)寄存器寻址(8)寄存器寻址(9)端口间接寻址(10)寄存器基址加变址间接寻址指出 8086/8088 下列指令中存储器操作数物理地址的计数表达式。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 18 页 -(1)MOV AL,DI (2)MOV AX,BX+SI(3)MOV 8BX+DI,AL (4)ADD AL,ES:BX(5)SUB AX,2400H (6)ADC AX,BX+DI+1200H(7)MOV CX,BP+SI (8)INC BYTP PTRDI解:(1)PA=DS 16+DI (2)PA=DS 16+(BX+SI)(3)PA=DS 16+(BX+DI+8)(4)PA=ES 16+BX (5)PA=DS 16+2400H (6)PA=DS 16+(BX+DI+1200H)(7)PA=SS 16+(BP+SI)(8)PA=DS 16+DI 指出 8086/8088 下列指令的错误何在?(1)MOV SI,IP (2)MOV CS,AX(3)MOV BL,SI+2 (4)MOV 60H,AL(5)PUSH 2400H (6)INC BX(7)MUL 60H (8)ADD 2400H,2AH(9)MOV BX,DI (10)MOV SI,AL解:(1)IP 不可与内部寄存器之间实现直接数据传送(2)代码段寄存器CS不可与内部寄存器之间实现直接数据传送(3)应是 SI+2 指示的内存单元的字节内容(4)立即数60H不可做目的操作数(5)PUSH 的源操作数只能为寄存器操作数或内存操作数(6)间接寻址存储器数据加1 指令要用TYPE PTR类型操作符来标识数据类型(7)MUL 指令的源操作数只能为寄存器操作数或内存操作数(8)要用 TYPE PTR 类型操作符来标识数据类型(9)两者不能同为存储器操作数(10)AL为 8 位,SI 为 16 位,数据类型不匹配 MOV CS,AX指令会带来什么错误?解:这条指令不存在。如果有的话,将可以直接仅改变代码段的段基址而IP 值不变,程序运行顺序发生变化,变到那里去了?很难控制。阅读下列程序段,指出每条指令执行以后有关寄存器的内容是什么?名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 18 页 -MOV AX,0ABCH ;AX=0ABCH DEC AX ;AX=0ABBH AND AX,00FFH ;AX=00BBH MOV CL,4 ;CL=4 SAL AL,1 ;AL=76H,CF=1 MOV CL,AL ;CL=76H ADD CL,78H ;CL=0EEH,CF=0 PUSH AX;AX=0076H POP BX;BX=0076H解:执行完后,AX=0076H,CF=0,CL=0EEH指出 RET和 IRET两条指令的区别,并说明各用在什么场合?解:RET用于从过程返回,而IRET用于从中断中返回。说明 MOV BX,DATA和 MOV BX,0FFSET DATA指令之间的区别。解:MOV BX,DATA;DATA是字变量名,指令功能是把DATA 变量的内容BXMOV BX,0FFSET DATA;把 DATA变量的段内偏移地址BX3.44给定 DS=1100H,BX=0200H,LIST=0250H 和 SI=0500H。试确定下面各条指令寻址存储器的物理地址。(1)MOV LISTSI,EDX (2)MOV CL,LISTBX+SI(3)MOV CH,BX+SI (4)MOV DL,BX+100 解:(1)PA=11000+0500+0250=11750H (2)PA=11000+0200+0500+0250=11950H(3)PA=11000+0200+0500=11700H (4)PA=11000+0200+0100=11300H假定 PC机存储器低地址区有关单元的内容如下所示。(20H)=3CH,(21H)=00H,(22H)=86H,(23H)=0EH且 CS=2000H,IP=0010H,SS=1000H,SP=0100HFLAGS=0240H,这时 若执行 INT 8 指令,试问:(1)程序转向从何处执行(用物理地址回答)?(2)栈顶 6 个存储单元的地址(用逻辑地址回答)及内容分别是什么?解:(1)PA=0E86 10H+003CH =0E89CH名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 18 页 -(2)LA=1000:00FAH 1000:00FFH设 SP=2000H,AX=3000H,BX=5000H,执行下列片段程序后,问SP=?AX=?BX=?PUSH AX PUSH BXPOP AX解:SP=1FFEH,AX=5000H,BX=5000H某程序段为 2000H:304CH ABC:MOV AX,1234H。2000H:307EH JNE ABC试问代码段中跳转指令的操作数为何值?解:操作数为 4CH(7E+2)=0CCH若 AX=5555H,BX=FF00H,试问在下列程序段执行后,AX=?BX=?CF=?AND AX,BX ;AX=5500H XOR AX,AX ;AX=0000H NOT BX解:AX=0000H,BX=00FFH,CF=03.49若 CS=E000H,说明代码段可寻址物理存储地址空间的范围。解:代码段可寻址物理存储地址空间的范围是:E0000H EFFFFH,共 64KB的空间。3.50若 DS=3000H,BX=2000H,SI=0100H,ES=4000H,计算出下述各条指令中存储器操作数的物理地址。(1)MOV BX,AH (2)ADD AL,BX+SI+1000H(3)MOV AL,BX+SI (4)SUB AL,ES:BX解:(1)PA=30000+2000=32000H (2)PA=30000+2000+0100+1000=33100H(3)PA=30000+2000+0100=32100H(4)PA=40000+2000=42000H3.51试比较 SUB AL,09H与 CMP AL,09H这两条指令的异同,若AL=08H,分别执行下述两条指令后,SF=?CF=?OF=?ZF=?解:在 SUB指令中,将AL 09H 的值赋给 AL,而 CMP 指令只影响标志,不保存结果。名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 18 页 -SUB AL,09H ;SF=1,CF=1,OF=0,ZF=0,AL=FF CMP AL,09 ;SF=1,CF=1,OF=0,ZF=0,AL=083.52选用最少的指令,实现下述要求的功能。(1)AH的高 4 位清零(2)AL 的高 4 位取反(3)AL 的高 4 位移到低4 位,高 4 位清零(4)AH的低 4 位移到高4 位,低 4 位清零解:(1)AND AH,0FH (2)XOR AL,0F0H(3)MOV CL,4SHR AL,CL (4)MOV CL,4SHL AH,CL 3.53设 BX=6D16H,AX=1100H,写出下列两条指令执行后BX寄存器中的内容。MOV CL,06H ;CL=06HROL AX,CL ;AX=4004HSHR BX,CL ;BX=01B4H解:BX=01B4H3.54设初值 AX=0119H,执行下列程序段后AX=?MOV CH,AH ;CH=01HADD AL,AH ;AL=1AH,AF=0,CF=0DAA ;AL=20,AF=1,CF=0XCHG AL,CH ;AL=01H,CH=20HADC AL,34H ;AL=01H+34H=35HDAA ;AL=35HMOV AH,AL ;AH=35HMOV AL,CH ;AL=20HHLT 名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 18 页 -解:AX=3520H3.55设初值 AX=6264H,CX=0004H,在执行下列程序段后AX=?AND AX,AX ;AX=6264H,ZF=0JZ DONESHL CX,1 ;CX=0008H ROR AX,CL ;AX=6462HDONE:OR AX,1234H ;AX=7676H解:AX=7676H3.56写出可使AX清零的几条指令。解:AND AX,0;MOV AX,0;XOR AX,AX。3.57什么叫堆栈?说明堆栈中数据进出的顺序以及压入堆栈和弹出堆栈的操作过程。解:堆栈中数据的进出顺序为“先进后出”PUSH S操作过程,先SP SP 2,再 SS:SPS POP D操作过程,先DSS:SP,再 SP SP 23.58808680286 微处理器中PUSH和 POP指令在堆栈和寄存器或存储单元之间总是传送多少位数字?解:传送 16 位数字3.59哪个段寄存器不能从堆栈中弹出?解:SS段寄存器不能从堆栈中弹出。3.60如果堆栈底部定位在存储器位置02200H,试问 SS和 SP中将装入什么值?解:SS=0220H,SP=0000H3.61带有 OFFSET 的 MOV 指令与 LEA指令比较,哪条指令的效率更高?解:MOV 指令与 LEA指令的功能不同,应用的地方也不同,应该说没有可比性。在二者都可用时,MOV 指令的效率更高。带有OFFSET 的 MOV 指令不能完全替代LEA指令。3.62若 AX=1001H,DX=20FFH,当执行ADD AX,DX指令后,请列出和数及标志寄存器中每个位的内容(CF、AF、SF、ZF和 OF)。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 18 页 -解:AX=3100H,CF=0;AF=1;SF=0;ZF=0;OF=0。3.63假如想从200 中减去 AL 中的内容,用SUB 200,AL 是否正确?如果不正确,请写出正确的指令表示。解:不可用立即数做目的操作数 MOV BL,200 SUB BL,AL3.64若 DL=0F3H,BH=72H,当从 DL减去 BH后,列出差数及标志寄存器各位的内容。解:差数为81H,AF=0,SF=1,ZF=0,OF=03.65当两个 16 位数相乘时,乘积放在哪两个寄存器中?并指出积的高有效位和低有效位分别防在哪个寄存器中?CF和 OF两个标志位是什么?解:乘积放在DX,AX中,高位放在 DX中,低位放在 AX中,当 DX 0 时,CF=OF=1,否则CF=OF=0。3.663.67写出一个程序段,求DL寄存器中一个8 位数的3 次方,起初将5 装入 DL,要确保结果是 16 位的数字。解 1:16 位二进制数最大可以是40 的三次方,而402 =1600 256,故:MOV AL,X;X可以是 0 至 40 的任意数MOV DL,AL;MUL DL ;求 X2 MOV DH,AH;保留 X2的高 8 位MUL DL ;X2的低 8 位再乘 XMOV BX,AX;保存 X2的低 8 位与 X的乘积MOV AL,DH MUL DL;X2的高 8 位再乘 X,乘积不会超出8 位MOV CL,8SHL AX,CL;把 X2的高 8 位与 X的乘积左移8 位(乘以256)ADD AX,BX;再加上 X2的低 8 位与 X的乘积=X3结果在 AX中解 2:如果 X15,则 152 255,故:名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 18 页 -MOV AL,X;X可以是 0 至 15 的任意数MOV DL,AL;MUL DL ;求 X2,且高 8 位 AH=0 MUL DL ;X2再乘 X结果在 AX中3.68叙述 IMUL WORD PTRSI 指令的操作。解:DX、AX(AX)SI,即 AX中的和 SI、SI+1 所指内存单元中的两个16 位有符号数相乘,结果送DX和 AX中。3.69叙述 IMUL BX,DX,200H 指令的操作。(题目有错!)解:3.70当执行 8 位数除法指令时,被除数放在哪个寄存器中?当执行16 位除法指令时,商数放在哪个寄存器中?解:8 位除法时,被除数放在AX中;16 位除法时,商数放于AX中。3.71执行除法指令时,微处理器能检测出哪种类型的错误?叙述它的处理过程。解:若除法运算所得的商位数大于除数的位数,即超出指令允许的商的范围,则系统将其当作除数为 0 处理,自动产生类型0 中断,CPU将转去执行类型0 中断服务程序作适当处理,此时所得的商数和余数均无效。在进行类型0 中断处理时,先是将标志位进栈,IF 和 TF清 0,接着是 CS和 IP 的内容进栈;然后将0、1 两单元的内容填入IP,而将 2、3 两单元的内容填入CS;进入 0 号中断的处理程序。3.72试写出一个程序段,用CL 中的数据除BL 中的数据,然后将结果乘2,最后的结果的存入 DX寄存器中的16 位数。解:MOV AH,0 MOV AL,BL;装入被除数DIV CL;除以 CLMOV AH,0;忽略余数SHL A X,1;商乘以 2 MOV DX,AX;转存入DX3.73BCD 码算术运算使用哪些指令?这些指令的功能是什么?在使用时对它们在指令系列中名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 18 页 -所放的位置有什么要求?解:BCD码算术运算使用DAA、DAS指令。DAA 加法十进制调整指令,必须跟在ADD或 ADC指令之后使用。DAS 减法的十进制调整指令,必须跟在SUB或 SBB指令之后。3.74ASCII 码算术运算使用哪些指令?这些指令的功能的什么?解:非组合 BCD(ASCII)码算术运算使用AAA、AAS、AAM、AAD指令。AAA 加法的ASCII 码调整指令;AAS 减法的 ASCII 码调整指令;AAM 非组合BCD码的乘法调整指令;AAD 非组合BCD码的除法调整指令。3.75解释 AAM指令将二进制转换为BCD码的操作过程。解:将 AL 寄存器中的结果除以10,所得的商数即为高位十进制数(十位)置入AH中,所得的余数即为低位十进制数(个位)置入AL中。3.76设计一个程序段,将AX和 BX中的 8 位 BCD数加 CX和 DX中的 8 位 BCD数(AX和 CX是最高有效寄存器),加法以后的结必须存入CX和 DX中。解:ADD DX,BX ADC CX,AX3.77用 AND指令实现下列操作。(1)BX“与”DX,结果存入BX (2)0AEH“与”DH(3)DI“与”BP,结果存入DI 中(4)1234H“与”AX(5)由 BP寻址的存储单元的数据“与”CX,结果存入存储单元中。(6)AL 和 WAIT存储单元中的内容相“与”,结果存入WAIT。解:(1)AND BX,DX (2)AND DH,0AEH(3)AND DI,BP (4)AND AX,1234H(5)AND BP,CX (6)AND WAIT,AL设计一个程序段,将DH中的最左三位清零,而不改变DH中的其他地位,结果存入BH中。解:AND DH,1FH MOV BH,DH用“OR”指令实现下列操作。(1)BL“或”DH,结果存入DH (2)0AEH“或”ECX(3)DX“或”SI,结果存入SI (4)1234H“或”EAX名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 18 页 -(5)由 BP寻址的存储单元的数据“或”CX,结果存入存储单元中。(6)AL和 WHEN 存储单元中的内容相“或”,结果存入WHEN 中解:(1)OR DH,BL (2)OR ECX,0AEH(3)OR SI,DX (4)OR EAX,1234H(5)OR BP,CX (6)OR WHEN,AL设计一个程序段,将DI 中的最右5 位置 1,而不改变DI 中的其他位,结果存入SI 中。解:OR DI,001FH MOV SI,DI设计一个程序段,将AX中最右 4 位置 1,将 AX中的最左3 位清零,并且把AX中的 7、8、9位取反。解:OR AX,000FH AND AX,1FFFH XOR AX,0380H选择正确的指令以实现下列任务。(1)把 DI 右移 3 位,再把0 移入最高位(2)把 AL中的所有位左移一位,使0 移入最低位(3)AL循环左移3 位(4)DX带进位循环右移1 位解:(1)MOV CL,3SHR DI,CL (2)SHL DI,1(3)MOV CL,3ROL AL,3 (4)RCR DX,1如果要使程序无条件的转移到下列几种不同距离的目标地址,应使用哪种类型的 JMP 指令?(1)假定位移量为0120H字节(2)假定位移量为0012H字节(3)假定位移量为12000H字节名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 18 页 -解:(1)段内近转移(2)段内短转移(3)段间远转移近转移和远转移分别通过什么改变哪些寄存器的值来修改程序地址?解:近转移只需修改IP 寄存器内容,而远转移不光要修改IP 值还要修改段寄存器CS的内容。试比较 JMP DI 与 JMP FAR PTRDI指令的操作有什么区别?解:二者都为间接转移,JMP DI的目标地址存放于存储器DS:DI 的 2 个连续地址单元中,仅改变 IP,属于段内转移;而JMP FARDI 的目标地址存放于存储器DS:DI 的 4 个连续地址单元中,不但改变IP 而且改变CS,属于段间远转移,程序会转移到另一代码段中的目标地址去执行后续命令。用串操作指令设计实现如下功能的程序段:先将100 个数从 6180H处搬移到2000H处;再从中检索出等于AL中字符的单元(一个?),并将此单元值换成空格符。解:CLD CLD MOV CX,100 MOV CX,100 MOV SI,6180H LEA DI,2000H MOV DI,2000H MOV AL,DAT PEP MOVSB REPNE SCASB JNZ ZER DEC DI MOV BYTE PTR DI,ZER:HLT在使用条件转移指令时,特别要注意它们均为相对转移指令,请说明“相对转移”的含义是什么?如果要向较远的地方进行条件转移,那么,此程序应如何设置?解:相对转移的含义:在同一段内,转移的目标地址相对起始地址的距离(目标地址起始地址),条件转移指令的相对转移范围为128+127。当要转移到较远的目标地址时,可以先用条件转移指令转到较近的目标地址;然后,再从该单元起放一条无条件转移指令,这样,就可以通过该指令转移到较远的目标地址。带参数的返回指令用在什么场合?设栈顶地址为2000H,当执行 RET 0008 后,问 SP的值是多名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 18 页 -少?解:如果调用程序通过堆栈向过程传送了一些参数,过程在运行中要使用这些参数,一旦过程执行完毕,这些参数也应当弹出堆栈作废。执行后,SP=2004H+8=200CH。在执行中断返回指令IRET 和过程(子程序)返回指令RET时,具体操作内容有什么区别?解:IRET 指令总是安排在中断服务程序的出口处,由它控制从堆栈中弹出程序断点送回CS和IP 中,弹出标志寄存器内容送回F 中,迫使CPU返回到断点继续执行后续程序。从过程返回(RET)指令应安排在过程的出口即过程的最后一条指令处,它的功能是从堆栈顶部弹出由CALL指令压入的断点地址值,迫使 CPU 返回到调用程序的断点去继续执行。IRET至少要比RET指令多弹出一个F 寄存器。INT 40H指令的中断向量存储在哪些地址单元?试用图解说明中断向量的含义和具体内容,并指出它和中断入口地址之间是什么关系?注:楷体部分内容不够准确、明确或不太合适。名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 18 页 -

    注意事项

    本文(2022年微机原理习题答案 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开