《2022年微机原理习题答案 3.pdf》由会员分享,可在线阅读,更多相关《2022年微机原理习题答案 3.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微型计算机原理习题3(P117)参考答案(部分题号与教材有错位,请注意)为什么要研究8086/8088 微处理器及其系统这比直接研究32 位微处理器及其系统有何优缺点解:尽管 8086/8088 后续的 80286、80386、80486 以及 Pentium 系列 CPU结构和功能已发生很大变化, 但从基本概念与结构以及指令格式上来讲,他们仍然是经典的8086/8088CPU的延续与提升。8086 CPU有多少根数据线和地址线它能寻址多少内存地址单元和I/O 端口 8088CPU又有多少根数据线和地址线为什么要设计8088CPU解: 8086 CPU有 16 根数据线和20 根地址线,可寻址
2、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的指
3、令队列缓冲器中取得,执行指令的结果或执行指令所需要的数据,都由 EU向 BIU 发出请求, 再由 BIU 经总线控制电路对存储器或外设存取。8086 CPU内部的总线接口单元BIU 由哪些功能部件组成他们的基本操作原理是什么解: BIU 内有 4 个 16 位的段地址寄存器CS 、DS、SS和 ES ,16 位指令指针IP,6 字节指令队列缓冲器, 20 位地址加法器和总线控制电路。基本操作原理是BIU要从内存取指令送到指令队列缓冲器;CPU执行指令时, 总线接口单元要配合执行单元从指定的内存单元或者外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果传送到指定的内存单元或外设端口
4、中。什么叫微处理器的并行操作方式为什么说8086 CPU 具有并行操作的功能在什么情况下8086的执行单元EU 才需要等待总线接口单元BIU 提取指令解: 并行操作,就是CPU执行完1 条指令后就可以立即执行下一条指令,而不需要像以往8位 CPU那样重复的进行先取指令和后执行的指令串行操作。16 位 CPU的这种并行操作的特点,提高了总线的信息传输效率和整个系统的执行速度。只有当遇到转移指令、调用指令或返回指令时,或者当某一条指令在执行过程中,需要频繁访问内存以至于总线接口单元没有空闲从内存将指令提取到指令队列中时,才需要等待总线接口单元BIU提取指令。逻辑地址和物理地址有什么区别为什么808
5、6 微处理器要引入“段加偏移”的技术思想段加偏移的基本含义又是什么试举例说明。解:逻辑地址由16 位段地址和16 位段内偏移量(又称有效地址)组成,程序中指令必须通过逻辑地址访问内存。物理地址是由20 条地址线信号指示的内存地址,在电路中必须使用这20条物理的地址信号线访问内存。物理地址=段地址 16+有效地址。参考教材:P54 第 311 行P56 “2。段寄存器”的第1 段P70 “3。3。5 段加偏移寻址机制允许重定位”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共
6、 11 页 - - - - - - - - - 段加偏移的基本含义是:将段寄存器内容左移4 位后与16 位偏移地址相加。例:假设CS=FA00H ,IP=0300H,这是物理地址为0FA300H。在微处理器中设置指令队列缓冲器有什么作用8086 与 8088 CPU中的指令队列有何区别解:指令队列缓冲器在执行指令的同时,可以从内存中取下面一条或几条指令,取来的指令就依次暂放在指令队列中。区别: 8086 指令队列为6 个字节, 8088 为 4 字节; 8086 指令队列只要空出2 个,而 8088只要空出 1 个指令字节时,BIU 便自动执行取指操作,直到填满为止。8086 CPU的基址寄存
7、器BX和基址指针(或基址指针寄存器)BP有何区别基址指针BP和堆栈指针 SP在使用中有何区别解:基址寄存器BX在查表指令XLAT中存放表的起始地址,而基址指针BP用来存放堆栈地址。指针寄存器SP和 BP都用来指示存储位于当前堆栈段中的数据所在的地址,但SP和 BP在使用上有区别。入栈和出栈指令是由SP给出栈顶的偏移地址,故称为堆栈指针寄存器。而BP则是存放位于堆栈段中的一个数据区的基地址的偏移地址,故称为堆栈基址指针寄存器。段地址和段起始地址相同吗两者是什么关系8086 的段起始地址就是段基址吗它是怎样获得的解: 不同。为了使8086/8088 CPU能够寻址1MB 内存空间,在其内部设计了一
8、组16 位的段寄存器,用这些段寄存器的内容作为段地址,再由段寄存器左移4 位形成 20 位的段起始地址。8086 的段起始地址就是段基址。由段寄存器左移4 位形成 20 位的段基址。微处理器在实模式下操作时,段寄存器的用途是什么解: 为了使 8086/8088 CPU能够寻址1MB 内存空间,在其内部设计了一组16 位段寄存器,用这些段寄存器的内容作为段地址,再由段寄存器左移4 位形成 20 位的段起始地址,它们通常被称为段基址;这样,8086/8088 就有可能寻址1MB 存储空间并将其分为若干个逻辑段,提供在内存中的重定位功能。在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和
9、结束地址。( 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=1
10、A00和 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寄存器用来保存记数值;在使用循环控制指令LOOP时, CX寄存器用来保存记数值。IP 寄存器的用途是什么它提供的是什么信息解:简单地说, IP寄存器指示即将执行的下一条指令的段内偏移地址。一般情况
11、下,CPU每取一个指令字节,IP 就自动加1,从而保证程序的顺序运行。程序控制类指令改变IP值,从而改变程序的运行顺序。8086 的进位标志位有哪些运算指令来置位解: 当执行加法、减法、乘法指令、BCD调整指令、移位和循环指令都会影响进位标志,但使CF 置位的运算指令只有NEG指令( STC不算运算指令) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 如果带符号数FFH与 01H 相加,会产生溢出吗解: 0FFH+01H=
12、0H ,所以不会产生溢出。某个数包含有5 个 1,它具有什么奇偶性解:奇偶性为奇,标志PF=0 某个数为全0,它的零标志位为0 吗(题目不好)解:不为0,零标志 ZF=1用什么指令设置哪个标志位,就可以控制微处理器的INTR 引脚解: 用 STI和 CLI指令控制IF标志,就可以控制微处理器的INTR引脚。微处理器在什么情况下才执行总线周期一个基本的总线周期由几个状态组成在什么情况下需要插入等待状态解:为了从存储器中取得指令或者与一个存储单元或I/O 接口单元传送数据,需要它的总线接口单元执行一个总线周期。一个总线周期由T1、T2、T3和 T4这四个状态。由于外设或存储器的速度较慢,不能及时的
13、配合CPU传送数据。这时,外设或存储器就会通过“ READY ”的信号线在T3状态启动之前向CPU发一个“数据未准备好”信号,表示他们还来不及同CPU之间传送数据,于是,CPU会在 T3之后自动插入一个或多个附加的时钟周期TW,这个 TW就叫等待状态。什么叫做非规则字,微处理器对非规则字是怎样操作的解:对内存中存放的字数据,其低位字节在奇数地址开始存放,称为非规则存放,存放的字叫非规则字。 8086 对非规则字必须分两次访问。8086 对 1MB 的存储空间是如何按高位库和低位库来进行选择和访问的用什么控制信号来实现对两个库的选择解:8086 的 1MB 存储空间分为两个512KB的存储体,又
14、称存储库,分别叫高位库和低位库,低位库与数据总线D7D0相连,该库中每个单元的地址均为偶数地址,高位库与数据总线D15D8相连,该库中每个单元的地址均为奇数地址。用 A0对低位库和用BHE对高位库实现选择控制。堆栈的深度由哪个寄存器确定为什么说一个堆栈的深度最大为64kB 在执行一条入栈或出栈命令时,栈顶地址将如何变化解: 堆栈的深度由堆栈指针SP来确定。因为存储器中包括堆栈段在内的每一个逻辑段至多可包含64KB长的连续存储单元,所以一个堆栈的深度最大为64KB。执行 PUSH s指令时,先SP SP 2,再 SS :SPS执行 POP d 指令时,先dSS :SP,再 SP SP+28086
15、/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 方式时,它被置为高阻状
16、态。8086/8088CPU的哪些引脚采用了时分复用技术哪些引脚具有两种功能解: 地址 /数据总线AD15AD0,地址 /状态总线A19/S6A16/S3,BHE/S7采用了分时复用技术。MN/MX 、DT/R、 M/IO、RQ/GT1、RQ/GT0具有两种功能。8086/8088CPU 的微机系统有哪两种工作方式它们由什么引脚来实现控制这两种工作方式的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 主要特点和区别如何解: 8
17、086/8088 CPU微机系统有最大和最小两种工作方式。他们由MN/MX 引脚实现控制。MN/MX 接电源电压,系统工作于最小方式,即单处理机系统,适合于较小规模的应用。MN/MX 接地, 系统工作于最大方式,一般包含两个或多个微处理器,这样就要解决主处理器和协处理器之间的协调问题以及对总线的共享控制问题。最大方式和最小方式的主要区别是外加有 8288 总线控制器。当 8086/8088 按最大方式操作时,8288 总线控制器主要提供什么功能8086/8088 CPU在最大方式下工作时有哪些专用引脚它们的主要作用是什么解: 通过它对CPU发出的控制信号进行变换和组合,以得到对存储器和I/O
18、端口的读 /写信号和对锁存器器8282 及对总线收发器8286 的控制信号,使总线控制功能更加完善。在最大方式下使用的专用引脚有:(1)QS1、QS0指令队列状态信号输出这两个信号组合起来提供了本总线周期的前一个时钟周期中指令队列的状态,以便于外部对8086/8088 内部指令队列的动作跟踪。(2)LOCK 总线封锁信号输出当 LOCK为低电平时,系统中其他主部件就不能占有总线。(3)RQ/GT1、RQ/GT0总线请求信号输入/总线这两个信号端可供CPU以外的两个处理器用来发出使用总线的请求信号和接收CPU对总线请求信号的回答信号。(4)S0、S1、S2状态信号, 8288 根据这三个状态信号
19、和CLK时钟信号组合输出各种总线控制信号。为什么要研究指令格式8086/8088 微处理器有哪些基本的指令格式解: 指令格式是按指令系统的特定规范与要求精心设计的,了解指令格式,对完整的掌握一个成功设计的指令系统是十分必要的。基本指令格式有:无操作数指令、单操作数指令、双操作数指令在指令格式中, MOD 字段指定了什么信息它和R/M 字段确定的有效地址EA的计算方法共有多少种解:MOD 字段给定指令的寻址方式,即规定是存储器或寄存器的寻址类型,并确定在存储器寻址类型时是否有位移量。它和 R/M 字段确定的有效地址EA计算方法共有24 种说明某些机器语言指令中的D 位和 W 位是何作用解:D 表
20、示来自 /到寄存器的方向。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 微处理器有哪几种主要的寻址方式解:寻址方式即寻找操作数的方式。主要的寻址方式有:固
21、定寻址、 立即数寻址、 寄存器寻址、存储器寻址、串操作指令寻址、I/O 端口寻址方式,其中存储器寻址又可分为:基址寻址、变址寻址、基址加变址。此外,程序控制指令还有直接、相对、寄存器间接、存储器间接等寻址方式。试写出寻址存储器操作时计算有效地址EA的通式。解: EA=基址值( BX/BP ) +变址值( SI/DI)+位移量 Disp(0/8/16 位)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 指出 8086/8088
22、下列指令源操作数的寻址方式。(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)寄存器基址加变址间接寻址指出 808
23、6/8088 下列指令中存储器操作数物理地址的计数表达式。(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+S
24、I )(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)MUL60H (8) ADD 2400H ,2AH( 9)MOV BX,DI (10)MOV SI,AL解: (1)IP 不可与内部寄存器之间实现直接数据传送(2)代码段寄存器CS不可与内部寄存器之间实现直接数据传送(3)应是 SI+2指示的内存单元的字节内容(4)立即数60H 不可做目的操作数(5)PUSH的源操作数只能为寄存器操作数或内存操作
25、数(6)间接寻址存储器数据加1 指令要用TYPE PTR类型操作符来标识数据类型(7)MUL 指令的源操作数只能为寄存器操作数或内存操作数(8)要用 TYPE PTR类型操作符来标识数据类型(9)两者不能同为存储器操作数(10)AL为 8 位, SI为 16 位,数据类型不匹配MOV CS , AX指令会带来什么错误解: 这条指令不存在。如果有的话,将可以直接仅改变代码段的段基址而IP 值不变,程序运行顺序发生变化,变到那里去了很难控制。阅读下列程序段,指出每条指令执行以后有关寄存器的内容是什么MOV AX, 0ABCH ; AX= 0ABCHDEC AX ; AX= 0ABBHAND AX,
26、00FFH ; AX= 00BBHMOV CL ,4 ; CL= 4SAL AL, 1 ;AL= 76H,CF=1MOV CL ,AL ;CL= 76H名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - ADD CL ,78H ;CL= 0EEH ,CF=0PUSH AX ;AX=0076HPOP BX ;BX=0076H解: 执行完后, AX=0076H,CF=0 ,CL=0EEH指出 RET和 IRET两条指令的区别,并说明各
27、用在什么场合解: 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 解:
28、(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 个存储单元的地址(用逻辑地
29、址回答)及内容分别是什么解: (1)PA=0E8610H + 003CH = 0E89CH(2)LA=1000:00FAH1000:00FFH设 SP=2000H,AX=3000H,BX=5000H,执行下列片段程序后,问SP=AX=BX=PUSH AXPUSH 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 ,试问在下列程序段执行后,
30、AX=BX=CF=AND AX,BX ;AX=5500HXOR AX,AX ;AX=0000HNOT BX解: AX=0000H,BX=00FFH ,CF=03.49若 CS=E000H ,说明代码段可寻址物理存储地址空间的范围。解: 代码段可寻址物理存储地址空间的范围是:E0000HEFFFFH ,共 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
31、)PA=30000+2000=32000H (2)PA=30000+2000+0100+1000=33100H名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - (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
32、指令中,将AL 09H 的值赋给AL,而 CMP 指令只影响标志,不保存结果。SUB AL,09H ; SF=1 ,CF=1 ,OF=0,ZF=0,AL=FFCMP 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
33、.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
34、=20HHLT 解: 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什么叫堆栈说明堆栈中数据进出的顺序以及压入堆栈和弹出堆栈的操作过程。解: 堆栈中数据的进出顺序为“先进后出”名师资料总结 - - -精品资料欢迎下载 - - -
35、- - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - PUSH S操作过程,先SP SP 2,再 SS :SP SPOP D 操作过程,先DSS :SP ,再 SP SP 23.58808680286 微处理器中PUSH和 POP指令在堆栈和寄存器或存储单元之间总是传送多少位数字解: 传送 16 位数字3.59哪个段寄存器不能从堆栈中弹出解:SS段寄存器不能从堆栈中弹出。3.60如果堆栈底部定位在存储器位置02200H,试问 SS和 SP中将装入什么值解: SS=0220H ,SP=0
36、000H3.61带有 OFFSET 的 MOV 指令与 LEA指令比较,哪条指令的效率更高解: MOV 指令与 LEA指令的功能不同,应用的地方也不同,应该说没有可比性。在二者都可用时, MOV 指令的效率更高。带有OFFSET 的 MOV 指令不能完全替代LEA指令。3.62若 AX=1001H,DX=20FFH ,当执行ADD AX,DX 指令后,请列出和数及标志寄存器中每个位的内容(CF、AF、SF 、ZF和 OF) 。解: AX=3100H,CF=0;AF=1;SF=0 ;ZF=0 ;OF=0。3.63假如想从200 中减去 AL 中的内容,用SUB 200,AL是否正确如果不正确,请
37、写出正确的指令表示。解: 不可用立即数做目的操作数MOV BL,200SUB 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中, 当 DX0时, CF=OF=1 , 否则CF=OF=0 。3.663.67写出一个程序段,求DL 寄存器中一个8 位数的 3 次方,起初将5
38、装入 DL,要确保结果是 16 位的数字。解 1:16 位二进制数最大可以是40 的三次方,而402 = 1600 256,故:MOV AL,X ;X 可以是 0 至 40 的任意数MOV DL,AL ;MUL DL ;求 X2MOV 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 位与
39、X的乘积 = X3结果在 AX 中解 2:如果 X15,则 152 255,故:MOV AL,X ;X 可以是 0 至 15 的任意数MOV DL,AL ;MUL DL ;求 X2,且高 8 位 AH=0MUL DL ;X2再乘 X名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - 结果在 AX中3.68叙述 IMUL WORD PTRSI指令的操作。解:DX、AX(AX)SI,即 AX中的和 SI 、SI+1所指内存单元中的两个
40、16 位有符号数相乘,结果送 DX 和 AX 中。3.69叙述 IMUL BX,DX,200H 指令的操作。 (题目有错! )解:3.70当执行 8 位数除法指令时,被除数放在哪个寄存器中当执行16 位除法指令时, 商数放在哪个寄存器中解:8 位除法时,被除数放在AX中; 16 位除法时,商数放于AX中。3.71执行除法指令时,微处理器能检测出哪种类型的错误叙述它的处理过程。解:若除法运算所得的商位数大于除数的位数,即超出指令允许的商的范围,则系统将其当作除数为 0 处理,自动产生类型0 中断, CPU将转去执行类型0 中断服务程序作适当处理,此时所得的商数和余数均无效。在进行类型0 中断处理
41、时,先是将标志位进栈,IF和 TF清 0,接着是 CS和 IP的内容进栈;然后将0、1 两单元的内容填入IP,而将 2、3 两单元的内容填入CS ;进入 0 号中断的处理程序。3.72试写出一个程序段,用CL 中的数据除BL 中的数据,然后将结果乘2,最后的结果的存入 DX 寄存器中的16 位数。解: MOV AH,0MOV AL,BL ;装入被除数DIV CL ;除以 CLMOV AH,0 ;忽略余数SHL AX,1 ;商乘以 2MOV DX,AX ;转存入DX3.73BCD 码算术运算使用哪些指令这些指令的功能是什么在使用时对它们在指令系列中所放的位置有什么要求解:BCD码算术运算使用DA
42、A、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 中,所
43、得的余数即为低位十进制数(个位)置入AL中。3.76设计一个程序段,将AX 和 BX 中的 8 位 BCD数加 CX和 DX 中的 8 位 BCD 数( AX 和 CX是最高有效寄存器) ,加法以后的结必须存入CX和 DX 中。解: ADD DX,BXADC 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
44、 ,DX ( 2)AND DH,0AEH(3)AND DI,BP (4) AND AX,1234H(5)AND BP,CX ( 6)AND WAIT,AL名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - 设计一个程序段,将DH 中的最左三位清零,而不改变DH 中的其他地位,结果存入BH 中。解: AND DH,1FHMOV BH,DH用“ OR”指令实现下列操作。(1)BL“或” DH,结果存入DH (2)0AEH“或” ECX
45、(3)DX“或” SI,结果存入SI (4)1234H“或” EAX(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,001FHMOV SI,DI设计一个程序段,将AX 中最右 4 位置 1,将 AX 中的最左3 位清零,并且把AX
46、中的 7、8、9 位取反。解: OR AX,000FHAND AX,1FFFHXOR 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)假定位移量
47、为12000H 字节解: (1)段内近转移(2)段内短转移(3)段间远转移近转移和远转移分别通过什么改变哪些寄存器的值来修改程序地址解: 近转移只需修改IP寄存器内容,而远转移不光要修改IP值还要修改段寄存器CS的内容。试比较 JMP DI与 JMP FAR PTRDI指令的操作有什么区别解: 二者都为间接转移,JMP DI的目标地址存放于存储器DS:DI的 2 个连续地址单元中,仅改变 IP,属于段内转移;而JMP FARDI 的目标地址存放于存储器DS: DI的 4 个连续地址单元中, 不但改变IP而且改变CS ,属于段间远转移,程序会转移到另一代码段中的目标地址去执行后续命令。用串操作指
48、令设计实现如下功能的程序段:先将 100 个数从 6180H 处搬移到2000H 处;再从中检索出等于AL 中字符的单元(一个) ,并将此单元值换成空格符。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 解: CLD CLDMOV CX,100 MOV CX,100MOV SI,6180H LEA DI,2000HMOV DI, 2000H MOV AL,DATPEP MOVSB REPNE SCASBJNZ ZERDEC
49、DIMOV BYTE PTR DI, ZER :HLT在使用条件转移指令时,特别要注意它们均为相对转移指令,请说明“相对转移”的含义是什么如果要向较远的地方进行条件转移,那么,此程序应如何设置解:相对转移的含义:在同一段内,转移的目标地址相对起始地址的距离(目标地址起始地址) ,条件转移指令的相对转移范围为128 +127。当要转移到较远的目标地址时,可以先用条件转移指令转到较近的目标地址;然后,再从该单元起放一条无条件转移指令,这样,就可以通过该指令转移到较远的目标地址。带参数的返回指令用在什么场合设栈顶地址为2000H,当执行RET 0008 后,问SP的值是多少解:如果调用程序通过堆栈向
50、过程传送了一些参数,过程在运行中要使用这些参数,一旦过程执行完毕,这些参数也应当弹出堆栈作废。执行后, SP=2004H+8=200CH 。在执行中断返回指令IRET和过程(子程序)返回指令RET时,具体操作内容有什么区别解:IRET指令总是安排在中断服务程序的出口处,由它控制从堆栈中弹出程序断点送回CS和IP中,弹出标志寄存器内容送回F中,迫使CPU返回到断点继续执行后续程序。从过程返回(RET )指令应安排在过程的出口即过程的最后一条指令处,它的功能是从堆栈顶部弹出由CALL指令压入的断点地址值,迫使CPU 返回到调用程序的断点去继续执行。IRET至少要比RET指令多弹出一个F寄存器。IN