微机原理及应用-第2章-习题及答案
- 格式:doc
- 大小:163.50 KB
- 文档页数:7
名师整理优秀资源参考答案第一章计算机中的数制和码制第二章计算机概述一、填空题1.82.23. 10244. 25.5、11001.1、00100101.0101B5. 1000010B、42H、66H6. 41.625、29.AH7. 10001101B8. 11001001、110010109. -128 ~ +12710. 系统软件、应用软件11. 电子管、超大规模集成电路二、单选题1. A4. C2. C5.A 3.D 6. C三、分析简答题1. 8086 CPU 的总线根据其中信息传送的类型可分为几种?哪几种?答:8086 CPU 的总线根据其中信息传送的类型可分为三种种,分别是:数据总线、地址总线和控制总线2. 写出-25 的原码、反码、补码,并将补码转换成十六进制数 (设机器字长为8 位)。
答:X=-25=-11001BX 原码:10011001BX 反码:11100110BX 补码:11100111B = E7H名师整理 优秀资源 3. 举例说明什么是机器数,什么是真值?答: 将符号数值化了的数称为机器数。
如: -18=-10010B(真值);机器数为: 10010010B第三章 半导体存贮器一、填空题1. ROM 、RAM2. 6 个3. 8、4二、单选题1. A 5. C2 . B3 . D4 . B6 . C7 . B三、分析简答题1. 在对存储器芯片进行片选时,全译码方式、部分译码方式和线选方式各有何特点?答: ①全译码方式: 存储器芯片中的每一个存储单元对应一个唯一的地址。
译码需要的器件多;②部分译码方式:存储器芯片中的一个存储单元有多个地址。
译码简单;③线选:存储器芯片中的一个存储单元有多个地址。
地址有可能不连续。
不需要译码。
四、硬件接口设计题1. 答:(1)A10~08088CPUWEA10~0#CSY4WEA10~01#CS1Y5名师整理优秀资源(2) 存储器类型为RAM 总容量为4K×8地址范围: 0# 2000H-27FFH1# 2800H-2FFFH2. 答:(9 分)(1) 存储器类型:RAM该系统的存储器容量为:6K×8位(或:6K 字节)(2) 1#芯片的地址范围:1000H ~ 17FFH2#芯片的地址范围:0800H ~ 0FFFH3#芯片的地址范围:0000H ~ 07FFH3. 1)1K×42)2K×8或2KB3)地址分配范围第一组: A19~ A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 最小地址最大地址第二组:0 ~0 ~0 ~0 ~111111111111111111110 00000H~1 003FFH0 00400H~1 007FFH第四章微型计算机及微处理器的结构和组成一、填空题1. BIU、EU、指令的译码和指令执行2. 4、16、16、6、20名师整理优秀资源3. 8、164.1、2二、单选题1 . B2 . B三、分析简答题1. 8086/8088 微处理器内部有那些寄存器,它们的主要作用是什么?答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。
第二章计算机基础(P32)1-1电子管,晶体管,中小规模集成电路、大规模、超大规模集成电路。
1-2把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。
以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入/输出、接口电路及系统总线等所组成的计算机,称为微型计算机。
微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.1-3写出下列机器数的真值:(1)01101110 (2)10001101(3)01011001 (4)11001110答案:(1)+110 (2)-13(原码) -114(反码)-115(补码)(3)+89 (4)-78(原码)-49(反码)-50(补码)1-4写出下列二进制数的原码、反码和补码(设字长为8位):(1)+010111 (2)+101011(3)-101000 (4)-111111答案:(1)[x]原=00010111 [x]反= 00010111 [x]补= 00010111(2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011(3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000(4)[x]原=10111111 [x]反= 11000000 [x]补=110000011-5 当下列各二进制数分别代表原码,反码,和补码时,其等效的十进制数值为多少?(1)00001110 表示原码14,反码14,表示补码为14(2)11111111 表示原码-127,反码-0,表示补码为-1(3)10000000 表示原码-0,反码-127,表示补码为-128(4)10000001 表示原码-1,反码-126,表示补码为-1271-6 已知x1=+0010100,y1=+0100001,x2=-0010100,y2=-0100001,试计算下列各式。
微机原理第二章习题参考答案微机原理第二章作业参考答案: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个字节端口。
微机原理习题课第二章习题答案一、填空题1、MOV AX,7896HADD AL,AH上述指令执行后,标志位CF和OF的值是()。
2、MOV SP,3210HPUSH AX 执行上述指令序列后,SP寄存器的值是( )3、重复前缀指令REP的重复次数由()决定。
4、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。
5、下面指令序列执行后完成的运算,正确的算术表达式应是()。
MOV AL,BYTE PTR XSHL AL,1DEC ALMOV BYTE PTR Y,AL6、下面程序段执行后,AL中的内容是()MOV AX,8833HADD AL,AHDAA7、如JMP指令采用段间间接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是____ IP____,而后两个字节存放的是____ CS____。
8、执行下面的程序段后,AX=_________ 。
MOV CX,5;MOV AX,50;NEXT:SUB AX,CX;LOOP NEXT;HLT9、MUL WORD PTR [SI] ,原操作数__________;目标操作数__________;10、设AL=-18,CL=2,则执行SAR AL,CL 后,AL=__________ 。
11、设AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA之后,其结果应是()。
12、指令LOOPNZ 退出循环的条件是()。
13、MOV AX, 65A3;AND AX, 0FA03AX=___5FA6_______,若作为无符号数,其十进制值为___24486_______,若作为带符号数,其十进制值为____+24486______.14、(西安交大)写出一条能完成下述操作的指令(1)将AH的最高3位清零,其他位不变()(2)AH的低半字节置1,其他位不变()(3)AH的最低位取反,其他位不变()15、(西南交大) 8086 CPU在基址-变址寻址方式中,基址寄存器可以是( )和( ),变址寄存器可以是( )和( )。
微机原理及应⽤习题库与答案微机原理及应⽤习题库与答案习题与练习题1第1章绪论1.计算机分那⼏类?各有什么特点?答:传统上分为三类:⼤型主机、⼩型机、微型机。
⼤型主机⼀般为⾼性能的并⾏处理系统,存储容量⼤,事物处理能⼒强,可为众多⽤户提供服务。
⼩型机具有⼀定的数据处理能⼒,提供⼀定⽤户规模的信息服务,作为部门的信息服务中⼼。
微型机⼀般指在办公室或家庭的桌⾯或可移动的计算系统,体积⼩、价格低、具有⼯业化标准体系结构,兼容性好。
2.简述微处理器、微计算机及微计算机系统三个术语的内涵。
答:微处理器是微计算机系统的核⼼硬件部件,对系统的性能起决定性的影响。
微计算机包括微处理器、存储器、I/O接⼝电路及系统总线。
微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成⼀个完整的、独⽴的信息处理系统。
3.80X86微处理器有⼏代?各代的名称是什么?答:从体系结构上可分为3代:← 8080/8085:8位机。
↑ 8086/8088/80286:16位机。
→ 80386/80486:32位机。
第2章微处理器结构及微计算机的组成1.8086是多少位的微处理器?为什么?答:8086是16位的微处理器,其内部数据通路为16位,对外的数据总线也是16位。
2.EU与BIU各⾃的功能是什么?如何协同⼯作?答:EU是执⾏部件,主要的功能是执⾏指令。
BIU是总线接⼝部件,与⽚外存储器及I/O接⼝电路传输数据。
EU经过BIU进⾏⽚外操作数的访问,BIU为EU提供将要执⾏的指令。
EU与BIU可分别独⽴⼯作,当EU不需BIU提供服务时,BIU可进⾏填充指令队列的操作。
3.8086/8088与其前⼀代微处理器8085相⽐,内部操作有什么改进?答:8085为8位机,在执⾏指令过程中,取指令与执⾏执令都是串⾏的。
8086/8088由于内部有EU和BIU两个功能部件,可重叠操作,提⾼了处理器的性能。
4.8086/8088微处理器内部有那些寄存器,它们的主要作⽤是什么?答:执⾏部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。
第2 章习题参考答案1 8086CPU 由哪两局部构成它们的主要功能是什么?答:8086CPU由两局部组成:指令执行部件(E U,E x e c u t i o n U n i t)和总线接口部件(B I U,B u s I n t e r f a c e U n i t)。
指令执行部件〔EU〕主要由算术逻辑运算单元(A L U),标记存放器F R,通用存放器组和 EU 限制器等 4 个部件组成。
其主要功能是执行指令。
总线接口部件(B I U)主要由地址加法器, 专用存放器组,指令队列和总线限制电路等4 个部件组成。
其主要功能是形成访问存储器的物理地址, 访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参与 EU 运算或存放运算结果等。
2.8086C P U预取指令队列有什么好处?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 存放器中,也可放数据目标变址存放器D I:多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在 DS 存放器中,也可放数据基址指针 BP:用于存放内存的逻辑偏移地址,隐含的逻辑段地址在 SS 存放器中堆栈指针 SP:用于存放栈顶的逻辑偏移地址,隐含的逻辑段地址在 SS 存放器中限制存放器包括指令指针存放器I P和标记存放器F L A G:I P 用来指示当前指令在代码段的偏移位置。
李伯成《微机原理》习题第一章本章作业参考书目:①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》机械工业出版社2002年2月第一版②陆一倩编《微型计算机原理及其应用(十六位微型机)》哈尔滨工业大学出版社1994年8月第四版③王永山等编《微型计算机原理与应用》西安电子科技大学出版社2000年9月1.1将下列二进制数转换成十进制数:X=10010110B=1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21=128D+0D+0D+16D+0D+0D+4D+2D=150DX=101101100B=1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20=256D+0D+64D+32D+0D+16D+4D+0D=364DX=1101101B=1*26+1*25+0*24+1*23+1*22+0*21 +1*20=64D+32D+0D+8D+4D+0D+1D=109D1.2 将下列二进制小数转换成十进制数:(1)X=0.00111B=0*2-1+0*2-2+1*2-3+1*2-4+1*2-5=0D+0D+0.125D+0.0625D+0.03125D=0.21875D(2) X=0.11011B=1*2-1+1*2-2+0*2-3+1*2-4+1*2-5=0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D(3) X=0.101101B=1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6=0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D1.3 将下列十进制整数转换成二进制数:(1)X=254D=11111110B(2)X=1039D=10000001111B(3)X=141D=10001101B1.4 将下列十进制小数转换成二进制数:(1)X=0.75D=0.11B(2) X=0.102 D=0.0001101B(3) X=0.6667D=0.101010101B1.5 将下列十进制数转换成二进制数(1) 100.25D= 0110 0100.01H(2) 680.75D= 0010 1010 1000.11B1.6 将下列二进制数转换成十进制数(1) X=1001101.1011B =77.6875D(2) X=111010.00101B= 58.15625D1.7 将下列二进制数转换成八进制数(1)X=101011101B=101’011’101B=535Q(2) X=1101111010010B=1’101’111’010’010B=15722Q(3) X=110B=6Q1.8 将下列八进制数转换成二进制数:(1)X=760Q=111'110'000B(2)X=32415Q=11'010'100'001'101B1.9 将下列二进制数转换成十六进制数:X=101 0101 1110 1101B= 5 5 E D HX= 1100110101'1001B= 11 0011 0101 1001B= 3 3 5 9HX= 1000110001B= 10 0011 0001 B= 2 3 1 H1.10 将下列十六进制数转换成二进制数:X= ABCH= 1010 1011 1100 BX=3A6F.FFH = 0011 1010 0110 1111.1111 1111BX= F1C3.4B =1111 0001 1100 0011 . 0100 1011B1.11 将下列二进制数转换成BCD码:(1) X= 1011011.101B= 1'011'011.101B= 91.625d=1001 0001.0110BCD(2) X=1010110.001B= 1’010’110.001 =126.1 BCD1.12 将下列十进制数转换成BCD码:(1)X=1024D=0001 0000 0010 0100 BCD(2)X=632 = 0110 0011 0010 BCD(3)X= 103 = 0001 0000 0011 BCD1.13 写出下列字符的ASCI I码:A 41H 65D 0100 0001B9 39H 47D* 2AH 42D= 3DH 45D!21H 33D1.14 若加上偶校验码,下列字符的ASCII码是什么?字符原码加上偶校验码之后B 42H,0100 0010B 42H,0100 0010B4 34H,0011 0100B B4H,1011 0100B7 37H,0011 0111B B7H,1011 0111B= 3DH,0011 1101B BDH,1011 1101B!21H,0010 0001B 21H,0010 0001B?3FH 0011 1111B 3FH,0011 1111B1.15 加上奇校验,上面的结果如何?字符原码加上奇校验码之后B 42H,0100 0010B C2H,1100 0010B4 34H,0011 0100B 34H,0011 0100B7 37H,0011 0111B 37H,0011 0111B= 3DH,0011 1101B 3DH,0011 1101B!21H,0010 0001B A1H,1010 0001B?3FH 0011 1111B BFH,1011 1111B1.16 计算下式:(1)[‘B’/2+ABH-11011001B]*0.0101BCD=(42H/2+ABH-D9H)*0.21 BCD = = F3H*0.21 BCD =(-DH) *0.21 BCD= -2.73D(2) 3CH –[(84D)/(16Q)+’8’/8D]= 60D-[84D/14D+(56/8)]=60D-[13]D==47D1.17 对下列十进制数,用八位二进制数写出其原码、反码和补码:(正数的反码与原码相同,负数的反码除符号位之外其余各位按位取反。
《微机原理及应用》各章习题参考答案第1章微型计算机概论一、填空题1. 微机硬件系统主要由CPU、(存储器)、(总线)、(输入输出接口)和输入输出设备组成。
2. 冯·诺依曼计算机的核心原理是(存储程序原理)3. 完成下列数制的转换1)10100110B=( 166 )D=( A6H )H2)223.25 =( 11011111.01 )B=( DF.4 )H3)1011011.101B=( 5B.A )H=(1001 0001.01100010 0101 )BCD4. 已知[X]补5. 已知A=10101111,B=01010000,则A∧B的结果为( 00000000 ) B=86H,则X的十进制表示形式为( -122 )6. -29H的8位二进制反码是(11010110 )B7.字符4的ASCII码=( 34 )H二、简答题1.冯.诺依曼计算机的结构是怎样的,主要特点有哪些?解:将计算机设计为由运算器、控制器、存储器、输入设备和输出设备等5个部分组成,所有的执行都以运算器为核心,采用存储程序工作原理。
2. 已知X=-1101001B,Y=-1010110B,用补码方法求X-Y=?解:[X-Y]补=[X+(-Y)]补= [X]补+[-Y] [X]补原=11101001B [X]补 [-Y]=10010111B原=01010110B=[-Y] [X-Y]补补= [X]补+[-Y]补X-Y=[[X-Y]=11101101B补]补=10010011=-0010011=-193. 写出下列真值对应的原码和补码的形式:1)X=-1110011B2)X=-713)X=+1001001B解:1)[X]原码=11110011B , [X]补码=10001101B2)[X]原码=11000111B, [X]补码=10111001B3)[X]原码=01001001, [X] 补码=01001001B=?4. 已知X和Y的真值,求[X+Y]补1)X=-1110111B Y=+1011010B2)X=56 Y=-215. 若与门的输入端A、B、C的状态分别为1、0、1,则该与门的输出端状态为?若将这3位信号连接到或门,那么或门的输出又是什么状态?解:由与和或的逻辑关系知,若“与”门的输入端有一位为“0”,则输出为“0”;若“或”门的输入端有一位为“1”,则输出为“1”。
《80X86/Pentium微型计算机原理及应用》教材课后习题参考答案第三章3-5(1)MOV SI, 2100H 源:立即数;目标:寄存器(2)MOV CX, DISP[BX] 源:基址,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-23-7(1)源操作数错,基址+基址不能用在存储器寻址方式中,只能基址+变量,改成MOV AX, [BX+SI](2)错,V ALUE1和V ALUE2一般为自己定义的变量名称,则此两操作数的组合形式为存储器和存储器,ADD指令无此组合形式(3)错,立即数不能直接传给段寄存器(4)错,CS不能作为目标操作数(5)错,立即数不能作为目标操作数,两个操作数互换位置即可(6)如果V ALUE1是用DW定义的WORD型变量,则此题正确,否则错误(7)错,段寄存器不能直接传给段寄存器(8)错,移位次数超过1时,应该先将移位次数送给CL,改成MOV CL, 3; ROL [BX][DI],CL(9)错,NOT操作符只有一个操作数(10)对,CS不能作为目标操作数,但可以作为源操作数(11)错,不能直接将立即数压入堆栈(12)错,两处错误,1:IN指令应该AL在前,端口地址在后;2:端口地址100H超过8位数能表示的范围,应该先将100H送给DX,改成MOV DX, 100H; IN AL, DX(13)错,LEA指令的第二操作数必需为存储器寻址方式(14)错,CX不能作为寄存器间接寻址方式,应将CX改成BX/BP/SI/DI之一3-8(1)AX=3355H, SP=1FFEH(2)AX=3355H, DX=4466H, SP=1FFCH3-9 BX=4154H, [2F246H]=6F30H3-10 BX=139EH3-11 SI=0180H, DS=2000H3-12(1) CL=F6H(2) [1E4F6H]=5678H(3) BX=9226H, AX=1E40H(4) SI=9226H, [SI]=[1E4F6]=0024H(5) AX=5678H, [09226H]=1234H3-13 AF=0, CF=1, OF=1, SF=0, ZF=03-14(1) MOV AX, 0 XOR AX, AX SUB AX, AX(2) MOV CL, 4ROL BL,CL (或ROR BL, CL)(3) 题中没规定N1和N2是8位还是16位数,现假定都8位数(也可假定是16位数,程序不一样)MOV AH, 0MOV AL, N1IDIV N2MOV M1, ALMOV M2, AH(4) 题目的意思即使BX的b4,b6,b11位清零AND BX, 0F7AFH(5) XOR AX, 4020H(6) TEST DX, 0201H(7) TEST CL, 1JNZ NEXTINC CL (或DEC CL)NEXT:3-15 假设题目的意思理解为编号从1开始(1) LEA BX, BLOCK+(6-1)*2MOV AX, [BX](2) LEA BX, BLOCKMOV AX, 10[BX](3) LEA BX, BLOCKMOV SI, 0MOV AX, 10[BX][SI](4) MOV AX, BLOCK+103-16(1) 结果存在地址是580H端口中,[580H]=60H(2) 结果存在地址是580H端口中,[580H]=8060H(即[580H]=60H, [581H]=80H)(3) 结果存在AL中,AL=[40H]=4FH(4) 结果存在AX中,AL=[40H]=4FH, AH=[41H](题目中没有给出端口41H中的值)(5) 结果存在地址是45H端口中,[45H]=60H(6) 结果存在地址是45H端口中,[45H]=8060H(即[45H]=60H,[46H]=80H)3-17 假定每小题中NUM1和NUM2都是和题中指定的操作数等长,即(1)中NUM1和NUM2为字变量,(2)(3)中为字节变量,(4)中为双字变量(1) MOV AX, NUM2ADD NUM1, AX(2) MOV CX, 4LEA BX, NUM1XOR AL, AL ; AL清零L1: ADD AL, [BX]INC BXLOOP L1MOV RES, AL(3) MOV CX, 8LEA BX, NUM1XOR AX, AXL1: ADD AL, [BX]JNC L2INC AHL2: INC BXLOOP L1MOV AX, WORD PTR RES(4) MOV AX, WORD PTR NUM1ADD WORD PTR NUM2, AXMOV AX, WORD PTR NUM1+1ADC WORD PTR NUM2+1, AX ; (MOV指令不影响CF标志位,否则不能这么写) 3-18(1) MOV CX, 8LEA BX, NUM1XOR AX, AXL1: ADD AL, [BX]DAAJNC L2INC AHL2: INC BXLOOP L1MOV AX, WORD PTR RES(2) MOV AL, NUM1SUB AL, NUM2DASMOV RES, AL差=90H, CF=13-19(1) MOV AL, NUM1MUL NUM2 ; 8位乘8位MOV WORD PTR RES, AX(2) MOV AX, NUM1IMUL NUM2 ;16位乘16位MOV WORD PTR RES, AXMOV WORD PTR RES+2, DX(3)MOV AL, NUM1MOV BL, 46CBWDIV BLMOV WORD PTR RES, AX(4) MOV AX, NUM1CWDIDIV NUM2 (或DIV NUM2)MOV WORD PTR RES, AXMOV WORD PTR RES+2, DX3-20(1)53乘以2MOV AL, 53SHL AL, 1结果106(2) -49乘以2MOV AL, -49 ; -49补码为CFHSHL AL, 1 ;AL=9EH, 真值即为-98结果-98除以2类似3-21(1) BX=009AH(2) BX=15CH(3) BX=8071H(4) BX=10F7H(5) BX=FF1CH3-22(1) DX=[20506]=0006H BX=0004H(2) SP=1FFEH, [SP]=CX=FFFEH(3) CX=BX=0004H(4) AX=8094H, CF=0(5) AL=[20508H]=87H(6) AL=94H+37H+1=CCH, CF=0, AL=32H(7) SI=9(8) DI=9(9) [DI]=[2050A]=AL=94H(10) AX=17C6H, DX=8094H(11) AH=84H, BL=4(12) IP=DX=17C6H3-23(1) 将存储器中以FIRST为起始地址连续10个字节复制到以SECOND为起始地址的地方(2) 将存储器中数据段中以偏移地址0404H为起始地址,连续80H个字节的空间清零3-24MOV BX, 5MUL BXMOV BX, 2DIV BX3-26 MOV BX, 0A80HMOV AL, 5XLAT3-27(1) IP=1256(2) IP=3280H(3) IP=2450H3-28 IP=009A, CS=2000, [SP]=8F, [SP+1]=3DH, [SP+2]=50H, [SP+3]=40H3-29CMP AL, 1JNZ LAB1CMP AL, 2JNZ LAB2CMP AL,4JNZ LAB3最后一个条件(若位0至位2都是0,则顺序执行),相当于没有,因为不管符不符合这个条件,程序都会按顺序执行。
CH02 8086/8088指令系统
习题与思考题
1.假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量VAL 的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式?源操作数在哪里?如在存储器中请写出其物理地址是多少?
(1)MOV AX,0ABH (2)MOV AX,[100H]
(3)MOV AX,VAL (4)MOV BX,[SI]
(5)MOV AL,VAL[BX] (6)MOV CL,[BX][SI]
(7)MOV VAL[SI],BX (8)MOV [BP][SI],100
解答:
(1)MOV AX,0ABH
寻址方式:立即寻址;源操作数在数据线上;物理地址:无
(2)MOV AX,[100H]
寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+100H=2000H*16+100H=20100H
(3)MOV AX,VAL
寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+VAL=2000H*16+0050H=20050H
(4)MOV BX,[SI]
寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS*16+SI=2000H*16+00A0H=200A0H
(5)MOV AL,VAL[BX]
寻址方式:变址寻址;源操作数在存储器中;物理地址:DS*16+VAL+BX=2000H*16+0050H+0100
=20150H
(6)MOV CL,[BX][SI]
寻址方式:基址加变址寻址;源操作数在存储器中;物理地址:DS*16+BX+SI=2000H*16+0100H+00A0H
=201A0H
(7)MOV VAL[SI],BX
寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无
(8)MOV [BP][SI],100
寻址方式:立即寻址;源操作数在;物理地址:无
2.设有关寄存器及存储单元的内容如下:
DS=2000H,BX=0100H,AX=1200H,SI=0002H,[20100H]=12H,[20101H]=34H,[20102H]=56H,[20103]=78H,[21200]=2AH,[21201H]=4CH,[21202H]=0B7H,[21203H]=65H。
试说明下列各条指令单独执行后相关寄存器或存储单元的内容。
(1)MOV AX,1800H (2)MOV AX,BX
(3)MOV BX,[1200H] (4)MOV DX,1100[BX]
(5)MOV [BX][SI],AL (6)MOV AX,1100[BX][SI]
3.假定BX=0E3H,变量VALUE=79H,确定下列指令执行后的结果(操作数均为无符号数。
对3、6,写出相应标志位的状态)。
(1)ADD VALUE,BX (2)AND BX,VALUE
(3)CMP BX,VALUE (4)XOR BX,0FFH
(5)DEC BX (6)TEST BX,01H
4.已知SS=0FFA0H,SP=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图。
(标出存储单元的地址)解答:
00ADH 00AEH 00AFH
0FFA0:00B0H
···
FFAACH FFAADH FFAAEH FFAAFH FFAB0H
···
00ACH X FFAABH 00ADH 00AEH 00AFH
0FFA0:00B0H
···
57H 80H FFAACH FFAADH FFAAEH FFAAFH FFAB0H
···
00ACH X FFAABH ①初始状态;SP =00B0H
②PUSH AX ;(AX =8057H )SP =00AEH
00ADH 00AEH 00AFH
0FFA0:00B0H
···
79H 0FH 57H 80H FFAACH FFAADH FFAAEH FFAAFH FFAB0H
···00ACH X FFAABH 00ADH 00AEH 00AFH
0FFA0:00B0H
···
57H 80H FFAACH FFAADH FFAAEH FFAAFH FFAB0H
···
00ACH X FFAABH ③PUSH BX ;(BX =0F79H )SP =00ACH ④POP BX ;SP =00AEH
堆栈段SS =0FFA0H 堆栈段SS =0FFA0H
堆栈段SS =0FFA0H 堆栈段SS =0FFA0H
5.已知程序段如下: MOV AX ,1234H MOV CL ,4 ROL AX ,CL DEC AX MOV CX ,4 MUL CX 试问:(1)每条指令执行后,AX 寄存器的内容是什么?(2)每条指令执行后,CF ,SF 及ZF
6.写出实现下列计算的指令序列。
(假定X、Y、Z、W、R都为字变量)
(1)Z=W+(Z+X)(2)Z=W-(X+6)-(R+9)
(3)Z=(W*X)/(R+6)(4)Z=((W-X)/5*Y)*2
7.假定DX=1100100110111001B,CL=3,CF=1,试确定下列各条指令单独执行后DX的值。
(1)SHR DX,1 (2)SHL DL,1
(3)SAL DH,1 (4)SAR DX,CL
(5)ROR DX,CL (6)ROL DL,CL
(7)RCR DL,1 (8)RCL DX,CL
8.已知DX=1234H ,AX=5678H ,试分析下列程序执行后DX 、AX 的值各是什么?该程序完成了什么功能?
MOV CL ,4 SHL DX ,CL MOV BL ,AH SHL BL ,CL SHR BL ,CL OR DL ,BL
解答:DX=2345H ,AX=6780H 。
该程序完成的功能如图所示,将DX ,AX 拼装成双字后,左移四位。
DX DX AX 1
2
3
4
5
6
7
8
DX AX 2
3
4
6
7
8
2
3
4
5
6
7
8
AX
9.试分析下列程序段: ADD AX ,BX JNC L2 SUB AX ,BX JNC L3
JMP SHORTL5
如果AX 、BX 的内容给定如下:
AX BX (1)14C6H 80DCH (2)B568H 54B7H
问该程序在上述情况下执行后,程序转向何处? 解答:(1)AX =AX+BX =14C6H+80DCH =95A2H ;CF =0;无进位,转移至L2;
(2)AX =AX+BX =B568H+54B7H =0A1FH ;CF =1;有进位,继续执行;
AX =AX-BX =0A1FH+54B7H =B568H ;CF =1;有借位,继续执行;
无条件转移至SHORTL5
10.编写一段程序,比较两个5字节的字符串OLDS 和NEWS ,如果OLDS 字符串不同于NEWS
字符串,则执行NEW_LESS ,否则顺序执行。
解答:编程如下,(说明:左测程序为常规编法,两个字符串在一个数据段中;右测的程序要求OLDS在数据段中,NEWS在附加段中,利用串操作的指令是可行的)
LEA SI,OLDS; LEA SI,OLDS
LEA DI,NEWS; LEA DI,NEWS
MOV CX,5; MOV CX,5
NEXT:MOV AL,[SI]; CLD
MOV BL,[DI]; REPE CMPSB
CMP AL,BL; JNZ NEW_LESS
JNZ NEW_LESS;……
INC SI; JMP EXIT
INC DI; NEW_LESS:
LOOP NEXT;……
…… EXIT:……
JMP EXIT
NEW_LESS:
……
EXIT:……
11.若在数据段中从字节变量TABLE相应的单元开始存放了0~15的平方值,试写出包含有XLAT指令的指令序列查找N(0~15)的平方。
(设N的值存放在CL中)
解答:
MOV BX,OFFSET TABLE;LEA BX,TABLE
MOV CL,N
MOV AL,CL
XLAT
12.有两个双字数据串分别存放在ASC1和ASC2中(低字放低地址),求它们的差,结果放在ASC3中(低字放低地址)。
ASC1 DW 578,400
ASC2 DW 694,12
ASC3 DW ?,?
解答:编程如下,
LEA SI,ASC1
LEA DI,ASC2
LEA BX,ASC3
MOV CX,2
CLC
NEXT:MOV AX,[SI]
MOV DX,[DI]
SBB AX,DX
MOV [BX],AX
INC SI
INC SI
INC DI
INC DI
INC BX
INC BX
LOOP NEXT
(注:可编辑下载,若有不当之处,请指正,谢谢!)。