微机原理课后习题答案第二章微处理器和指令系统习题答案

合集下载

微机原理第2章 习题答案

微机原理第2章 习题答案

第2章习题参考答案18086CPU由哪两部分构成它们的主要功能是什么答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。

指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成。

其主要功能是执行指令。

总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成。

其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。

2.8086CPU预取指令队列有什么好处8086CPU内部的并行操作体现在哪里答:8086CPU的预取指令队列由6个字节组成。

按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。

:从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。

8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取并送到指令队列。

3. 8086CPU中有哪些寄存器各有什么用途答:CPU有14个内部寄存器,可分为3大类:通用寄存器、控制寄存器和段寄存器。

通用寄存器是一种面向寄存器的体系结构,操作数可以直接存放在这些寄存器中,既可减少访问存储器的次数,又可缩短程序的长度,提高了数据处理速度,占用内存空间少。

指令执行部件(EU)设有8个通用寄存器:AX:累加器,一般用来存放参加运算的数据和结果,在乘、除法运算、I/O操作、BCD数运算中有不可替代的作用BX:基址寄存器,除可作数据寄存器外,还可放内存的逻辑偏移地址CX:计数寄存器,既可作数据寄存器,又可在串指令和移位指令中作计数用DX:DX除可作通用数据寄存器外,还在乘、除法运算、带符号数的扩展指令中有特殊用途#源变址寄存器SI:多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中,也可放数据目标变址寄存器DI:多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中,也可放数据基址指针BP:用于存放内存的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中堆栈指针SP:用于存放栈顶的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中控制寄存器包括指令指针寄存器IP和标志寄存器FLAG:IP用来指示当前指令在代码段的偏移位置。

微机原理第2章课后答案

微机原理第2章课后答案

第2章8086微处理器及其系统教材习题解答1. 8086 CPU 由哪两部分构成,它们的主要功能是什么?在执行指令期间,EU 能直接访问存储器吗,为什么?【解】8086CPU由执行部件(EU)和总线接口部件(BIU)两部分组成。

执行部件由内部寄存器组、算术逻辑运算单元(ALU)与标志寄存器(FR)及内部控制逻辑等三部分组成。

寄存器用于存储操作数和中间结果;算术逻辑单元完成16位或8位算术逻辑运算,运算结果送上ALU内部数据总线,同时在标志寄存器中建立相应的标志;内部控制逻辑电路的主要功能是从指令队列缓冲器中取出指令,对指令进行译码,并产生各种控制信号,控制各部件的协同工作以完成指令的执行过程。

总线接口部件(BIU)负责CPU与存储器、I/O设备之间传送数据、地址、状态及控制信息。

每当EU部件要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。

EU要花几个时钟周期执行指令,指令执行中若需要访问内存或I/O设备,EU就向BIU 申请总线周期,若BIU总线空闲,则立即响应,若BIU正在取一条指令,则待取指令操作完成后再响应EU的总线请求。

2. 8086CPU与传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?【解】8086 CPU与传统的计算机相比增加了指令队列缓冲器,从而实现了执行部件(EU)与总线接口(BIU)部件的并行工作,因而提高了8086系统的效率。

3. 8086 CPU 中有哪些寄存器,各有什么用途?【解】8086共有8个16位的内部寄存器,分为两组:①通用数据寄存器。

四个通用数据寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8位寄存器。

用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。

AX(AH、AL)累加器。

有些指令约定以AX(或AL)为源或目的寄存器。

实际上大多数情况下,8086的所有通用寄存器均可充当累加器。

BX(BH、BL)基址寄存器。

微机原理第二章习题参考答案

微机原理第二章习题参考答案

微机原理第二章习题参考答案微机原理第二章作业参考答案:1.(2字节)a.指由8个二进制位组成的通用基本单元(6时钟周期)b.是cpu指令执行时间的刻度(10软件配置管理空间)c.cpu所要出访的存储单元数,与cpu地址总线条数有关(11实际地址)d.唯一能代表存储空间每个字节单元的地址,用5位16进制数表示(7总线周期)e.cpu执行访问存储器或i/o操作所花时间(12逻辑地址)f.由段基址和段偏转地址共同组成,均用4十一位16十进制则表示(4基本指令继续执行时间)g.指寄存器乘法指令继续执行所花掉时间(3指令)h.顺利完成操作方式的命令(1字长)i.指cpu在交换、加工、存放信息时信息位的基本长度(5指令执行时间)j.各条指令执行所花时间,不同指令值不一(8cache)k.为减轻cpu与主存储器间互换数据的速度瓶颈而建立的高速缓冲存储器(9虚拟存储器)l.cpu执行程序时看见的一个速度吻合内存却具有外存容量的假想存储器2.(1)mhz频率单位,可以用来表示cpu的主频1mhz=1000000hz(2)ghz频率单位,可以用来表示cpu的主频1ghz=1000000000hz(3)μs时间单位,可以用来表示基本指令执行时间1μs=10s(4)mips每秒百万条指令,用来表示基本指令执行速度(5)kb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1kb=2bytes(6)mb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1mb=2bytes(7)gb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1gb=2bytes(8)tb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1tb=2bytes3.eu的共同组成部件:(3)alu(7)状态标志寄存器(9)掌控单元(12)通用寄存器组与biu的共同组成部件:(1)地址部件au(2)段界检查器(4)20十一位地址产生器(5)20十一位物理地址加法器(6)指令队列(8)总线掌控逻辑(10)段寄存器组(11)指令指针4.标志sf(b符号标志)cf(d位次标志)af(h辅助位次标志)df(i方向标志)tf(a陷阱标志)of(c外溢标志)pf(f奇偶标志)if(g中断容许标志)zf(e零标志)类型sssccsscs为0时则表示的状态两个带符号数运算结果就是正数两个并无符号数经alu运算后并无位次或者借位产生两个数运算时,两个高4十一位运算并无位次或者借位产生数据串成操作方式的增量地址为自动递减正常调试两个带符号数运算后没产生外溢运算结果数据高8位中二进制存有奇数个1中断屏蔽数据运算时结果不为零403020?6107.首地址pa=62d87h末地址pa=62d87h+28h(则表示40字节)-1h=62daeh8.实际地址:99a40h9.实际地址:3ba00h10填写下列个状态下的有效信号状态总线操作类型t1t2t3t4最小模式下总线存储器读操作最小模式下总线存储器写操作11.特点方式最小模式最大模式12.00130h:00131h:00135h:00136h:13.0dah31h7fh5ehmn/mx引脚高电平低电平处理器个数12个以上总线控制信号的产生8086828834h00230h:2dh00231h:0abh00232h:00233h:67h14.55h00330h:20h00331h:00332h:45h00333h:20h00334h:53h00335h:20h00336h:54h00337h:20h00338h:43h15.(1)ds:11a7es:11a7ss:21becs:31b8ds,es段顶:11a70hss段顶上:21be0hss段底:22ca8hcs段顶上:31b80hds,es段底:21a6fhcs段底:41b7fh(2)of=0df=0if=1sf=0zf=0zf=0pf=0cf=016.5ch20a28h:00h20a29h:7ah20a2ah:20a2bh:20a2ch:20a2dh:20a2eh:20a2fh:20a30h:20a31h:53h42h0ffh12h00h5bh0ah入栈完毕时,(ss)=20a0h(ip)=0028h17.8086系统中:(1)8284a时钟产生器的作用是:为8086cpu提供时钟,产生cpu所需的系统时钟信号(2)8282/8283地址锁存器的作用是:锁存8086地址总线中的信息(3)8286/8287总线收发器的作用是:传送8086数据总线中的信息(4)8288总线控制器的促进作用就是:在最小工作模式下产生8086系统所需的掌控信号18.8086寻址i/o端口时,使用16条地址线,可寻址32k个字端口,或64k个字节端口。

微机原理第2章答案

微机原理第2章答案

第2章习题参考解答1.8086处理器内部一般包括哪些主要部分?8086处理器与其他处理器一样,其内部有算术逻辑部件、控制与定时部件、总线与总线接口部件、寄存器阵列等。

按功能结构可分为两部分,即总线接口单元(BIU)与执行单元(EU)。

BIU主要包括段寄存器、内部通信寄存器、指令指针、6字节指令队列、20位地址加法器和总线控制逻辑电路。

EU主要包括通用寄存器阵列、算术逻辑单元、控制与定时部件等。

2.什么是总线? —般微机中有哪些总线?所谓总线是指电脑中传送信息的一组通信导线,它将各个部件连接成—个整体。

在微处理器内部各单元之间传送信息的总线称为片内总线;在微处理器多个外部部件之间传送信息的总线称为片外总线或外部总线。

外部总线又分为地址总线、数据总线和控制总线。

随着电脑技术的发展,总线的概念越来越重要。

微机中常用的系统总线有PC总线、ISA总线、PCI总线等。

3.什么是堆栈?它有什么用途?堆栈指针的作用是什么?堆栈是一个按照后进先出的原则存取数据的部件,它是由栈区和栈指针组成的。

堆栈的作用是:当主程序调用子程序、子程序调用子程序或中断时转入中断服务程序时,能把断点地址及有关的寄存器、标志位及时正确地保存下来,并能保证逐次正确地返回。

堆栈除了有保存数据的栈区外,还有一个堆栈指针SP,它用来指示栈顶的位置。

假设是“向下生成”的堆栈,随着压入堆栈数据的增加,栈指针SP的值减少。

但SP始终指向栈顶。

4.在8086 CPU中,FR寄存器有哪些标志位?分别说明各位的功能。

8086 CPU中设置了一个16位的标志寄存器FR,其中用了9位,还有7位保留。

9位中有3位作为控制标志,6位作为状态标志。

IF:中断控制标志。

当IF=1时,允许可屏蔽中断请求;当IF=0时,禁止可屏蔽中断请求。

TF:单步运行标志。

当TF=1,单步运行;TF=0,连续运行程序。

DF:方向标志。

当DF=0,串操作时地址按增量修改;DF=1,地址按减量修改。

微机原理课后习题答案第二章微处理器和指令系统习题答案

微机原理课后习题答案第二章微处理器和指令系统习题答案

如果GDT寄存器值为00FFH,装人LDTR的选择符为0040H,试问装人描述符高速缓存的LDT描述符的起始地址是多少?解:GDT寄存器的高32位和低16位分别为GDT的基址和段限,所以:GDT的基址=00130000HLDTR选择符的高13位D15~D3=000000001000B是该LDT描述符在GDT中的序号,所以:LDT描述符的起始地址= GDT的基址十LDT描述符相对于GDT基址的偏移值=00130000H+8×8=00130040H假定80486工作在实模式下,(DS)=1000H, (SS)=2000H, ( SI ) = El07FH, ( BX )=0040H, (BP) = 0016H,变量TABLE的偏移地址为0100H。

请间下列指令的源操作数字段是什么寻址方式?它的有效地址(EA)和物理地址(PA)分别是多少?(1)MOV AX,[1234H ] (2) MOV AX, TABLE(3) MOV AX,[BX+100H] (4) MOV AX,TABLE[BPI[SI]解:(1)直接寻址,EA=1234H , PA =(DS)×16+EA=11234H。

(2)直接寻址,EA= O100H,PA= (DS)×16+EA=10100H。

(3)基址寻址,EA=( EBX)+100H =0140H,PA= (DS) × 16+EA=10140H。

(4)带位移的荃址加变址寻址。

(EA)= (BP)+[SI]十TABLE的偏移地址=0195HPA=(SS)×16+EA=20195H}下列指令的源操作数字段是什么寻址方式?(1)MOV EAX , EBX (2)MOV EAX,[ ECX] [EBX ](3) MOV EAX,[ESI][EDX * 2] (4)MOV EAx,[ ESI*8]解:(1)寄存器寻址。

(2)基址加变址寻址。

微机原理课后习题解答

微机原理课后习题解答

微机原理习题第一章绪论习题与答案1. 把下列二进制数转换成十进制数、十六进制数及BCD码形式。

(1)10110010B =(2)01011101.101B =解:(1)10110010B = 178D = B2H = (0001 0111 1000)BCD (2)01011101.101B = 93.625D = 5D.AH= (1001 0011.0110 0010 0101)BCD2. 把下列十进制数转换成二进制数。

(1)100D =(2)1000D =(3)67.21D =解:(1) 100D = 01100100B(2) 1000D = 1111101000B(3)67.21D = 1000011.0011B3. 把下列十六进制数转换成十进制数、二进制数。

(1) 2B5H =(2) 4CD.A5H =解:(1)2B5H = 693D = 0010 1011 0101B(2)4CD.A5H = 1229.6445D = 0100 1100 1101.1010 0101 B4. 计算下列各式。

(1)A7H+B8H =(2)E4H-A6H =解:(1)A7H+B8H = 15FH(2)E4H-A6H = 3EH5. 写出下列十进制数的原码、反码和补码。

(1)+89(2)-37解:(1)[+89 ] 原码、反码和补码为: 01011001B(2)[-37] 原码= 10100101 B[-37] 反码= 11011010 B[-37] 补码= 11011011 B6.求下列用二进制补码表示的十进制数(1)(01001101)补=(2)(10110101)补=解:(1)(01001101)补= 77D(2)(10110101)补= -75D7.请用8位二进制数写出下列字符带奇校验的ASCII码。

(1)C:1000011 (2)O:1001111(3)M:1001101 (4)P:1010000解:(1)C:0 1000011 (2)O:0 1001111(3)M:1 1001101 (4)P:1 10100008.请用8位二进制数写出下列字符带偶校验的ASCII码。

微机原理课后习题解答

微机原理课后习题解答

微机原理习题第一章绪论习题与答案1.把下列二进制数转换成十进制数、十六进制数及BCD码形式。

(1) 10110010B =(2) 01011101.101B =解:(1) 10110010B = 178D = B2H = (0001 0111 1000)BCD(2) 01011101.101B = 93.625D = 5D.AH= (1001 0011.0110 0010 0101)BCD2.把下列十进制数转换成二进制数。

(1) 100D =(2) 1000D =(3) 67.21D =解:(1)100D = 01100100B(2)1000D = 1111101000B(3) 67.21D = 1000011.0011B3.把下列十六进制数转换成十进制数、二进制数。

(1) 2B5H =(2) 4CD.A5H =解:(1) 2B5H = 693D = 0010 1011 0101B(2) 4CD.A5H = 1229.6445D = 0100 1100 1101.1010 0101 B4.计算下列各式。

(1) A7H+B8H =(2) E4H-A6H =解:(1) A7H+B8H = 15FH(2) E4H-A6H = 3EH5.写出下列十进制数的原码、反码和补码。

(1) +89(2) -37解:(1) [+89 ] 原码、反码和补码为: 01011001B(2) [-37] 原码 = 10100101 B[-37] 反码 = 11011010 B[-37] 补码 = 11011011 B6.求下列用二进制补码表示的十进制数(1)(01001101)补 =(2)(10110101)补 =解:(1)(01001101)补 = 77D(2)(10110101)补 = -75D7.请用8位二进制数写出下列字符带奇校验的ASCII码。

(1)C: 1000011(2)O: 1001111(3)M: 1001101(4)P: 1010000解:(1)C:0 1000011(2)O: 0 1001111(3)M:1 1001101(4)P: 1 10100008.请用8位二进制数写出下列字符带偶校验的ASCII码。

微机原理第2章习题与答案

微机原理第2章习题与答案

习题一、选择题1.8086/8088CPU内部有一个始终指示下条指令偏移地址的部件是_______。

A. SPB.CSC.IPD.BP答案:C2. 指令队列的作用是_________。

A.暂存操作数地址B.暂存操作数C.暂存指令地址D.暂存预取指令答案:D3. 8086/8088下列部件中与地址形成无关的是______。

A. ALUB. 通用寄存器C. 指针寄存器D. 段寄存器答案:A4.对于8086,下列说法错误的是_______。

A.段寄存器位于BIU中B.20位的物理地址是在EU部件中形成的C.复位后CS的初值为FFFFHD.指令队列的长度为6个字节答案:B5.8086/8088中ES、DI分别属于_______。

A. EU、BIUB. EU、EUC. BIU、BIUD. BIU、EU答案:D6.BIU与EU工作方式的正确说法是_______。

A. 并行但不同步工作B.同步工作C. 各自独立工作D. 指令队列满时异步工作,空时同步工作答案:A7.在执行转移、调用和返回指令时,指令队列中原有的内容_______。

A.自动清除B.用软件清除C.不改变D.自动清除或用软件清除答案:A8.下列说法中,正确的一条是______A. 8086/8088标志寄存器共有16位,每一位都有含义。

B. 8088/8086的数据总线都是16位。

C. 8086/8088的逻辑段不允许段的重叠和交叉D. 8086/8088的逻辑段空间最大为64KB,实际应用中可能小于64KB。

答案:D9.8086/8088工作于最大模式,是因为_____。

A.可以扩展存储容量B.可以扩大I/O空间C.可以构成多处理器系统D.可以提高CPU主频答案:C10.8088/8086最大模式比最小模式在结构上至少应增加_____。

A.中断优先级控制器B.总线控制器C.数据驱动器D.地址锁存器答案:B11.组成最大模式下的最小系统,除CPU、时钟电路,ROM,RAM及I/O接口外,至少需增加的芯片类型为______。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.9如果GDT寄存器值为0013000000FFH,装人LDTR的选择符为0040H,试问装人描述符高速缓存的LDT描述符的起始地址是多少?解:GDT寄存器的高32位和低16位分别为GDT的基址和段限,所以:GDT的基址=00130000HLDTR选择符的高13位D15~D3=000000001000B是该LDT描述符在GDT中的序号,所以:LDT描述符的起始地址= GDT的基址十LDT描述符相对于GDT基址的偏移值=00130000H+8×8=00130040H2.10假定80486工作在实模式下,(DS)=1000H, (SS)=2000H, ( SI ) = El07FH, ( BX )=0040H, (BP) = 0016H,变量TABLE的偏移地址为0100H。

请间下列指令的源操作数字段是什么寻址方式?它的有效地址(EA)和物理地址(PA)分别是多少?(1)MOV AX,[1234H ] (2) MOV AX, TABLE(3) MOV AX,[BX+100H] (4) MOV AX,TABLE[BPI[SI]解:(1)直接寻址,EA=1234H , PA =(DS)×16+EA=11234H。

(2)直接寻址,EA= O100H,PA= (DS)×16+EA=10100H。

(3)基址寻址,EA=( EBX)+100H =0140H,PA= (DS) × 16+EA=10140H。

(4)带位移的荃址加变址寻址。

(EA)= (BP)+[SI]十TABLE的偏移地址=0195H PA=(SS)×16+EA=20195H}2.11下列指令的源操作数字段是什么寻址方式?(1)MOV EAX , EBX (2)MOV EAX,[ ECX] [EBX ](3) MOV EAX,[ESI][EDX * 2] (4)MOV EAx,[ ESI*8]解:(1)寄存器寻址。

(2)基址加变址寻址。

(3)基址加比例变址寻址。

(4)比例变址寻址。

2.12分别指出下列指令中源操作和目的操作数的寻址方式。

式表示出EA和PA。

(1)MOV SI,2100H (2)MOV CX, DISP[BX](3) MOV [SI] ,AX (4)ADC AX,[BX][SI](5)AND AX,DX (6) MOV AX,[BX+10H](7) MOV AX,ES:[BX] (8) MOV Ax, [BX+SI+20H](9) MOV [BP ].CX (10) PUSH DS解:(1) 源操作数是立即数寻址;目的操作数是寄存器寻址。

(2)源操作数是基址寻址,EA=(BX)+DISP,PA=(DS)×16+(BX)+DISP 目的操作数是寄存器寻址。

(3)源操作数是寄存器寻址;目的操作数是寄存器间接寻址,EA=(SI).PA=(DS) × 16十(SI)。

(4)操作数是基址加变址寻址,EA= (BX)+(SI).PA= (DS) × 16十(BX)+(SI) 目的操作数是寄存器寻址。

(5)源操作数和目的操作数均为寄存器寻址。

(6)源操作数是基址寻址,EA=(BX)+10H.PA= (DS) × 16十(BX)+10H 目的操作数是寄存器寻址。

(7)源操作数是寄存器间接寻.EA= (Bx).PA= (ES) × 16+(BX)目的操作数是寄存器寻址。

(8)源操作数是带位移的基址加变址寻址:EA=(BX)+(SI)+20H.PA= (DS) × 16+(BX)+(SI)+20H ;目的操作数是寄存器寻址。

(9)源操作数是寄存器寻址;目的操作数是寄存器间接寻址,EA=(BP).PA= (SS) × 16十(BP)。

(10)源操作数是寄存器寻址;目的操作数是堆栈寻址,EA=(SP)-2.PA=(SS) × 16十(SP)-2。

2.13已知80486工作在实地址方式下。

其中一些寄存器的内容和一些存储单元的内容如图2.1所示,试指出下列各条指令执行后。

AX中的内容。

(1) MOV AX , 2010H(2) MOV AX, BX(3) MOV AX ,[1200H](4) MOV AX , [BX ](5) MOV AX, 1100H[BX](6) MOV AX,[BX][SI](7) MOV AX, 1100H[Bx+SI]( 8) LEA AX,[SI]解:(1) (AX) =2010H;(2) (AX)=(BX)=0100H;(3) (AX)= [32100H]=4C2AH:(4)(AX)= [ 30100H]=3412H;(5)(AX)= [31202H]=4C2AH;(6)(AX)= [30102H]=7856H;(7) (AX)= [31202H]=65B7H;(8)(AX)=(SI)=0002H2.15已知数据如图2.2所示,数据是低位在前,按下列要求编写程序段:(1)完成NUM1和NUM2的两个字数据相加,和存放在NUM1中。

(2)完成NUM 1单元开始的连续4个字节数据相加,和不超过一字节,放在RES单元。

(3)完成NUM1单元开始的连续8个字节数据相加,和为Ifi位,放在RES和RES十1两个单元中。

(4)完成NUMI和NUM2的双倍精度字数据相加。

和存放在NUM2开始的双字单元中。

解:(1) MOV AX,WORD PTR NUM2ADD WORD PTR NUMI,AX(2) LEA SI,NUM1MOV AL, 0MOV CX,4AGAIN : ADD AL, [S1]INC SILOOP AGAINMOV RES, AL(3) LEA SI,NUM1MOV AX, 0MOV CX, 8AGA I N:ADD AL, [SI]ADC AH, 0INC SILOOP AGAI NMOV WORD PTR RES, AXMOV AX, WORD PTR NUM 1ADD WORD PTR NUM2, AXMOV AX, WORD PTR NUM 1 [ 2 ]ADC WORD PTR NUM2 [ 2 ] , AX2.16 已知的BCD数如图2,2所示,低位在前,按下列要求编写计算BCD数据(为组合BCD 数)的程序段:(l)完成NUM I单元开始的连续8个组合型.SCD数相加,和(超过一字节)放在RES和RES + 1两个单元中。

(2)完成NUMI单元和NUM2单元的两个BCD数相减,其差存人RES单元,差=?,CF=?。

解:(1)LEA SI, NUM 1MOV WORD PTR RES,0 ;和清0MOV CX,8 ;置循环次数AGAIN ; MOV AL, RES ;取和低字节ADD AL,[SI] ;与当前BCD数相加DDA ;BCD调整MOV RES, AL ;保存和低字节JNC NEXT ;无进位不处理和高字节MOV AL,RES + 1 ;有进位,和高字节加1ADD AL , 1DAAMOV RES+ 1 , AL ;保存和高字节NEXT: INC SILOOP AGAIN(2) MOV AL, NUM1SUB AL,NUM2DASMOV RES, AL差=(RES)=90H,CF=12.17已知数据如图}.z所示,低位在前,按下列要求编写程序段:(1) RIUM1和NUM2两个数据相乘(均为无符号数),乘积放在RES开始的单元。

(2)NUM1和NUM2两个字数据相乘《均为带符号数),乘积放在RES开始的单元。

(3)NUM1单元的字节数据除以46(均为无符号数),商和余数依次放人RES开始的两个字节单元。

(4)NUM1字单元的字数据除以字单元的宇,商和余数依次放人RES开始的两个字单元。

解(1)MOV , AL,BYTE PTR NUM1MUL BYTE,PTR, NUM2MOV WORD PTR RES, AX(2)MOV AX,WORD PTR NUM1IMUL WORD PTR, NUM2MOV: WORD PTR RES,AXMOV WORD PTR RES十2,DX(3)MOV AX,46DIV BYTE PTR NUMIMOV WORD PTR RES, AXMOV AX,NUM2(4)CWD/MOV DX, 0IDIV/DIVWORD PTRNUM1MOV WORD PTR RES,AXMOV WORD PTR RES +2 , DX2.18 已知:(SS)=0A8E0H,(SP)=06C0H,(AX)二8881 H, (CX)=0E245H.试画出下列指令执行到位置1和位置2时堆栈区和SF指针内容的变化示意图。

图中应标出存储单元的实际地址PA。

PUSH AXPUSH CXPOPF执行到位置1和位置2时堆栈区和SF指针内容分别如图2.3(a)和2.3(b)所示。

2.19识别下列指令的正确性,对错误的指令、说明错误的原因。

(1)MOV DS,100 (2)MOV [1000H] ,23H(3)MOV [l 000H],[2000H] (4) MOV DATA,1133H(5)MOV 1020H,DX (6) MOV AX,[0100H+BX+BI](7) MOV CS,AX (8) PUSH AL(9) PUSH WORD PTR[SI] (l0) IN Al,[80H](11)OUT CX , AL (12) IN AX, 380H(13) MOV CL, 3300H (14) MOV Ax, 2100H[BP](15) MOV DS,ES (16) MOV IP, 2000H(17) PUSH CS (18)POP CS(19) LDS CS, [ BX ] (20) MOV GAMMA , CS(21)XCHG AH,AL (22) XCHG 200,AL(23) JMP BX (24)SHR Dx,2解:(1)错误。

立即数不能直接斌给段寄存器。

(2)错误。

目的操作数长度不确定。

(3)错误。

源、目的操作数不能同为存储器寻址。

(4)依赖于DATA的定义。

若DATA定义为字或双字变童,则正确:若DATA定义为字节变量.则源操作数超出目的操作数的数据范围.则错误;若DATA定义为常t,则目的操作数为立即数。

则错误。

(5)错误。

立即数不能直接赋给段寄存器。

(6)错误。

16位(带位移)基址加变址寻址方式中的地址寄存器不能同为基址寄存器。

(7)错误。

不能用传送指令改变代码段寄存器。

(8)错误。

堆栈指令的操作数不能为字节操作数。

(9)正确。

(10) I/O端A只能用立即数或DX间接寻址。

(11)错误。

CX不能用于寻址I/O端口。

相关文档
最新文档