微机原理与应用教材课后复习题与答案
- 格式:doc
- 大小:86.00 KB
- 文档页数:22
微机原理及应⽤(陈继红、徐晨)课后习题答案微机原理及应⽤(陈继红、徐晨)课后习题答案第三章8086/8088指令系统和寻址⽅式习题答案(部分)3.1总结计算机中⼗进制、⼆进制、⼋进制及⼗六进制数的书写形式。
123D、0AFH、77Q、1001110B分别表⽰什么计数制的数?答案:123D、0AFH、77Q、1001110B分别表⽰⼗进制、⼗六进制、⼋进制、⼆进制。
3.2字长为8位、16位⼆进制数的原码、补码表⽰的最⼤数和最⼩数分别是什么?答案:8位原码表⽰的最⼤数:(27-1)、8位补码表⽰的最⼤数:(27-1)、8位原码表⽰的最⼩数:-(27-1)、8位补码表⽰的最⼩数-27。
16最⼩数:-215。
3.3答案:7DH。
(2)255(3)7248H。
(4)509013E2H。
3.4答案:240D0F0H。
128D80H。
(3)11111111⼗进制数:255D;⼗六进制数:0FFH。
(4)01010101⼗进制数:85D;⼗六进制数:55H。
3.5把下列⽆符号⼗六进制数分别转换为⼗进制数和⼆进制数。
(1)FF(2)ABCD(3)123(4)FFFF答案:(1)FF⼗进制数:255D;⼆进制数;11111111B。
1010101111001101B。
(3)123⼗进制数:291D;⼆进制数;000100100011B。
(4)FFFF⼗进制数:65535D;⼆进制数;1111111111111111B。
3.6分别⽤8位⼆进制数和16位⼆进制数写出下列⼗进制数的原码和补码。
(1)16(2)-16(3)+0(4)-0(5)127(6)-128(7)121(8)-9 答案:(1)16800010000(2)-16800010000(3)+0800000000(4)-0800000000(5)127801111111(6)-128810000000(7)1218:01111001;16位⼆进制数原码:0000000001111001补码:0000000001111001。
名师整理优秀资源参考答案第一章计算机中的数制和码制第二章计算机概述一、填空题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。
《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,则顺序执行),相当于没有,因为不管符不符合这个条件,程序都会按顺序执行。
第1章计算机基础知识1. 计算机中为什么都采用二进制数而不采用十进制数?【解】计算机的基本功能是对数的运算和处理。
计算机中,通过数字化编码技术,对所表示的数值、文字、符号及控制信息等进行数字编码,这种数字化表示方法不仅要适合于人的自然习惯,同时要满足机器中所用器件、线路的工作状态以及数据可靠传输与易于校验纠错等方面的要求。
一个具有两种不同的稳定状态且能相互转换的器件,就可以用来表示一位二进制数,所以表示二进制的器件易于制造且工作可靠,并且二进制数的运算规则也最简单,因此目前计算机中均采用二进制数来表示各种信息及进行信息处理。
2. 写出下列用原码或补码表示的机器数的真值:(1)01101101 (2)10001101 (3)01011001 (4)11001110【解】(1) [X]原=01101101=+109 [X]补=01101101=+109(2) [X]原=10001101=-13 [X]补=10001101=-115(3) [X]原=01011001=+89 [X]补=01011001=+89(4) [X]原=11001110=-78 [X]补=11001110=-503. 填空:(1) (1234)10=( )2=( )16(2) (34.6875)10=( )2=( )16(3) (271.33)10=( )2=( )16(4) (101011001001)2=( )10=( )16(5) (1AB.E)16=( )10=( )2(6) (10101010.0111)2=( )10=( )16【解】(1) (1234)10=( 10011010010 )2=( 4D2 )16(2) (34.6875)10=( 100010.1011 )2=( 22.B )16(3) (271.33)10=( 100001111.010101 )2=( 10F.54 )16(4) (101011001001)2=( 2761 )10=( AC9 )16(5) (1AB.E)16=( 427.875 )10=(110101011.111 )2(6) (10101010.0111)2=( 170.4375 )10=( AA.7 )164. 已知X=36,Y=-136,Z=-1250,请写出X、Y、Z的16位原码、反码和补码。
一、填空题(每空2分,共20分)1.FD2. 执行部件(EU)3. 系统4. Byte5. 16. B7. 直接 8. 3 9. 并行 10. 分支二、选择题(每题2分,共20分)1. D2. C3. A4. D5. A6. B7. C8. C9. A 10. C三、名词解释(每题5分,共20分)1、队列:在内存中划分出一块区域用于暂存数据,对数据的操作顺序是先入先出。
2、ROM是只读存储器,里面的信息只能读出,不能写入,信息断电是能保存的。
RAM是随机存储器,里面的信息既能读出也能写入,信息断电是丢失的。
3、指令是能让CPU动作的命令;一款CPU所有的指令集合叫做指令集,或者指令系统。
4、计算机系统中,CPU与存储器或外设进行信息交换的方式有:查询方式、中断方式和存储器直接存取(DMA)方式。
四、简答题(每题10分,共20分)1、堆栈的特点是:数据先入后出。
队列的特点是:数据先入先出。
堆栈的用途:1)在子程序调用时用来保存断点;2)响应中断时,保存断点以及标志寄存器;3)执行子程序时,用来保护现场;4)暂存寄存器的值或存放临时数据;5)用于程序间传递参数;队列的用途:1)暂存寄存器的值或存放临时数据;2)用于程序间传递参数。
2、8086 CPU的内存空间为1M字节,因此对1M字节的每个单元寻址需要提供20位的地址信号,而8086 内部的寄存器均为16位的,因此8086 CPU将1MB的内存空间划分为不同的段,每个段最大为64KB(这样可以由16位地址即可寻址),这样对1MB的内存空间寻址时需要提供两个16位的地址---逻辑地址(由16位的基地址和16位的偏移地址),偏移地址确定一个惟一的20位的物理地址(基地址*16+偏移地址)来对1MB的内存空间进行惟一的寻址。
五、编程题(共20分)STACK SEGMENT PARA STACK 'STA'DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK START:MOV CX,0MOV BX,0INPUT:MOV AH,1INT 21HCMP AL,' 'JZ STOPCMP AL,30HJB INPUTCMP AL,39HJA INPUTINC CXSUB AL,30HMOV AH,0ADD BX,AXJMP INPUTSTOP: MOV AX,4C00HINT 21HCODE ENDSEND START。
微机原理复习题及答案一、选择题1. 微处理器中的寄存器主要用于存储什么?A. 指令B. 数据C. 地址D. 程序答案:B2. 在微机系统中,总线分为哪几种类型?A. 数据总线B. 地址总线C. 控制总线D. 所有以上答案:D3. 微机系统中,CPU的主要功能是什么?A. 存储数据B. 执行程序C. 管理内存D. 显示图像答案:B4. 在微机系统中,RAM和ROM的区别是什么?A. RAM是只读存储器,ROM是随机存取存储器B. RAM是随机存取存储器,ROM是只读存储器C. RAM和ROM都是随机存取存储器D. RAM和ROM都是只读存储器答案:B5. 微机系统中的I/O设备指的是什么?A. 输入/输出设备B. 内部/外部设备C. 集成电路/操作系统设备D. 接口/操作系统设备答案:A二、填空题6. 微机系统中的CPU由______和______组成。
答案:算术逻辑单元(ALU);控制单元(CU)7. 微机系统中的______用于存储正在执行的指令。
答案:指令寄存器(IR)8. 微机系统中的______用于存储当前正在处理的数据。
答案:累加器(ACC)9. 在微机系统中,______是用于存储指令和数据的设备。
答案:内存10. 微机系统中的______是用于输入输出数据的设备。
答案:外部设备三、简答题11. 简述微机系统中的指令周期包括哪些步骤?答案:指令周期通常包括取指令、分析指令、执行指令和写回结果四个步骤。
12. 描述微机系统中的中断系统的作用。
答案:中断系统允许微机在执行程序的过程中,响应并处理外部或内部的突发事件,提高了系统的响应能力和效率。
四、计算题13. 假设一个微机系统有16位地址总线和8位数据总线,请计算该系统的最大内存容量。
答案:最大内存容量 = 2^地址总线位数 * 数据总线位数 = 2^16 * 2^8 = 65536 * 256 = 16777216字节,即16MB。
五、论述题14. 论述微机系统中的流水线技术及其优点。
微机原理与应用-习题集(含答案)《微机原理与应用》课程习题集一、单选题1.一个字是____位二进制数。
A、32B、20C、16D、82.一个字节是____位二进制数。
A、32B、20C、16D、83.在计算机内部,一切信息的存取、处理和传送都是以形式进行的。
A、EBCDIC码B、ASCII码C、十六进制编码D、二进制编码4.下列数据中,可能是6进制数的是。
A、488B、357C、541D、1265.下列数据中,可能是八进制数的是。
A、182B、417C、696D、1086.下面几个不同进制的中,最大的数是。
A、1100010BB、225QC、500D、1FEH7.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母g的ASCII码为十进制数。
A、102B、103C、104D、1058.字符d的ASCII码为十六进制数64,字符j的ASCII码为十六进制数。
A、68B、69C、6AD、6B9.数字字符4的ASCII码为十六进制数34,数字字符9的ASCII 码为十六进制数。
A、37B、38C、39D、4010.已知英文大写字母A的ASCII码为十进制数65,则英文大写字母E的ASCII码为十进制数。
A、67B、68C、69D、7011.十进制数36转换成二进制数是。
A、110100B、100100C、100110D、10010112.与十进制数96等值的二进制数是。
A、1100000B、1100001C、1011110D、110110013.十进制数60转换成二进制数是。
A、111100B、111110C、111101D、11011014.十进制负数-61的八位二进制原码是。
A、10101111B、10111101C、10101011D、0011010115.十进制数59转换成八进制数是。
A、73QB、37QC、59QD、112Q16.二进制数1101.01转换成十进制数是。
A、17.256B、13.5C、13.25D、17.517.二进制数10101转换成十进制数是。
《微机原理与应用》部分答案《微机原理与应用》复习一、填空题:1、127.5 + 10101011.1B = _______________H。
2、155.625 + 10101011.0111B =()H。
3、255.625 + 10101011.011B = )H。
4、ABH + 10110110.1B=()10。
5、0AAH + 10110110.1B=()10。
6、[X]原=11100001B,[Y]原=11000011B, 则[X-Y]补=B,X-Y=()10。
7、[X]补=11000010,[Y]补=11001010,求[X-Y]补=B,X-Y=()10。
8、[X]补=11000010,[Y]补=11001010,则[X-Y]补=B。
9、总线按其传送信息的性质可以划分为、地址总线和。
10、指令包含和两部分。
11、8086/8088CPU内部分为两部分,其中,负责CPU内部与外部(存储器和I/O接口)的信息传递的部件是,负责执行指令的部件是。
在总线周期,如果检测到READY为低电平,CPU自动插入周期。
12、微型计算机是由CPU、_____________、、总线以及其它支持逻辑电路所组成。
13、8086/8088CPU内部分为两部分。
其中,BIU是负责的部件,EU是负责的部件。
在总线周期中,如果检测到为低电平,CPU自动插入T W周期。
14、关于ROM的存储原理,掩膜ROM是利用存放信息,PROM是利用存放信息,而EPROM则是利用存放信息。
15、 8086/8088 CPU有根地址线,其中8086 CPU地址/数据复用线是AD~。
16、8086/8088 CPU有根地址线,其中8086 CPU地址/数据复用线是AD0 ~。
数据总线控制总线操作码操作数BIU EUTw存储器I/O接口CPU内部与外部信息的传递执行全部的指令READY信号有无晶体管熔丝通断浮动栅是否带电20AD1520AD1517、若CS=1100H , SS=2200H , IP=1234H , SP=5678H ,则当前栈顶的逻辑地址= :H ,现行指令的物理地址是H 。
微机原理及应用吴宁习题答案第一章:微机系统简介1.1 微机的概念微机是一种计算机系统,由微处理器、存储器、输入输出设备和总线组成,用于处理和存储信息。
1.2 微机系统的基本组成微机系统由以下几个组成部分构成: - 微处理器:负责执行指令并进行数据处理。
- 存储器:用于存储程序和数据。
- 输入设备:用于接收用户的输入操作。
- 输出设备:用于向用户输出处理结果。
- 总线:用于连接各个组件,传输数据和控制信号。
第二章:微处理器基础知识2.1 微处理器的发展历程微处理器经历了几个重要的发展阶段: - 单芯片处理器:将处理器的各个功能集成到一个芯片上。
- 处理器性能的提升:采用更高频率的时钟和更大的缓存。
- 多核处理器:将多个处理核心集成到一个芯片上,提高并行处理能力。
- 特殊用途处理器:如图形处理器(GPU)和人工智能处理器(AI芯片)。
2.2 微处理器的主要构成微处理器由以下几个主要组成部分构成: - 控制单元(CU):负责指令的解码和执行,控制数据在处理器内部的流动。
- 算术逻辑单元(ALU):负责进行算术和逻辑操作。
- 寄存器组:用于存储数据和指令。
- 数据通路:用于传输数据和控制信号。
2.3 微处理器的工作原理微处理器的工作原理可以分为以下几个步骤: 1. 指令的取出:从存储器中读取指令。
2. 指令的解码:将指令解码为对应的操作。
3. 操作的执行:根据指令执行相应的操作,如算术运算或逻辑运算。
4. 结果的存储:将操作结果存储到寄存器或存储器中。
5. 下一条指令的取出:重复以上步骤,执行下一条指令。
第三章:微机接口与输入输出3.1 输入输出接口的作用输入输出接口用于连接微机系统与外部设备,实现数据的输入和输出。
3.2 常见的输入输出接口类型常见的输入输出接口类型包括: - 并行接口:传输多个比特的数据,适用于高速数据传输。
- 串行接口:逐位传输数据,适用于长距离传输。
- USB接口:通用串行总线接口,支持高速数据传输和热插拔。
《微机原理及应用》习题答案第一章⏹1.11 请完成下列数制转换:(1)将174.66D转换为对应的二进制和十六进制形式。
(2)将100011101011.01011B转换为对应的十进制和十六进制形式。
(3)将F18A6.6H转换为对应的二进制和十进制形式。
答:174.66D=10101110.1010B=AE.AH100011101011.01011B=2283.34375D=8EB.58HF18A6.6H=989350.375D⏹1.12 请写出与数据+37和-37对应的8位机器数原码、反码和补码,并分别用二进制和十六进制表示出来。
答:-37D=(10100101B)原=(11011010B)反=(11011011B)补⏹1.13 8位机器数46H,若作为无符号数和补码有符号数,其对应的真值各是什么?若作为BCD码和ASC II码,其对应的又是什么?答:无符号数46H=70,补码46H=+70 BCD码46H=46,ASCII码46H=“F”第二章●2.5什么是8088中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?1MB最多能分成多少个逻辑段?请将如下逻辑地址用物理地址表达:(1)FFFFH:0H(2) 40H:17H (3) 2000H:4500H(4) B821H:4567H答:⑴ FFFFH:0H = FFFF0H⑵ 40H:17H = 00417H⑶ 2000H:4500H= 24500H⑷ B821H:4567H= BC777H●2.8已知DS=2000H,BX=0100H,SI=0002,存储单元[20100H]~[20103H]依次存放12H,34H,56H,78H,[21200H]~[21203H]依次存放2A H,4CH,87H,65H,说明下列每条指令执行完后AX寄存器的内容以及源操作数的寻址方式?答:⑴ AX=1200H,立即数寻址;⑵ AX=0100H,寄存器寻址;⑶ AX=4C2AH,直接寻址;⑷ AX=3412H,寄存器间接寻址;⑸ AX=4C2AH,寄存器相对寻址;⑹ AX=7865H,基址变址寻址;⑺ AX=65B7H,基址变址相对寻址。
《微机原理及应用》习题答案第一章1.11 请完成下列数制转换:(1)将174.66D转换为对应的二进制和十六进制形式。
(2)将100011101011.01011B转换为对应的十进制和十六进制形式。
(3)将F18A6.6H转换为对应的二进制和十进制形式。
答:174.66D=10101110.1010B=AE.AH100011101011.01011B=2283.34375D=8EB.58HF18A6.6H=989350.375D1.12 请写出与数据+37和-37对应的8位机器数原码、反码和补码,并分别用二进制和十六进制表示出来。
答:-37D=(10100101B)原=(11011010B)反=(11011011B)补1.13 8位机器数46H,若作为无符号数和补码有符号数,其对应的真值各是什么?若作为BCD码和ASCII码,其对应的又是什么?答:无符号数46H=70,补码46H=+70 BCD码46H=46,ASCII码46H=“F”第二章2.5什么是8088中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?1MB最多能分成多少个逻辑段?请将如下逻辑地址用物理地址表达:(1)FFFFH:0H (2) 40H:17H (3) 2000H:4500H (4) B821H:4567H 答:⑴ FFFFH:0H = FFFF0H⑵ 40H:17H = 00417H⑶ 2000H:4500H = 24500H⑷ B821H:4567H = BC777H2.8已知DS=2000H,BX=0100H,SI=0002,存储单元[20100H]~[20103H]依次存放12H,34H,56H,78H,[21200H]~[21203H]依次存放2AH,4CH,87H,65H,说明下列每条指令执行完后AX寄存器的内容以及源操作数的寻址方式?答:⑴ AX=1200H,立即数寻址;⑵ AX=0100H,寄存器寻址;⑶ AX=4C2AH,直接寻址;⑷ AX=3412H,寄存器间接寻址;⑸ AX=4C2AH,寄存器相对寻址;⑹ AX=7865H,基址变址寻址;⑺ AX=65B7H,基址变址相对寻址。
2.9 说明下面各条指令的具体错误原因:(1)mov cx,dl (2)mov ip,ax (3)mov es,1234h (4)mov es,ds(5) mov al,300 (6)mov [sp],ax (7)mov ax,bx+di (8)mov 20h,ah答:⑴操作数类型不同;⑵不能手工修改IP;⑶不能将立即数直接MOV到段寄存器;⑷不能在段寄存器之间直接MOV数据;⑸300大于AL所能存放的数据的范围;⑹寄存器间接寻址只能用BX/BP/SI/DI之一;⑺MOV AX,[BX+DI];⑻目的操作数不能是立即数。
2.10 已知数字0~9对应的格雷码依次为:18H,34H,05H,06H,09H,0AH,0CH,11H,12H,14H,它存在于以table为首地址(设为200H)的连续区域中。
请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。
lea bx,tablemov al,8xlat答:lea bx,table ;bx=0200hmov al,8 ;al=08hxlat ;al=12h2.11给出下列各条指令执行后的AL值,以及CF,ZF,SF,OF和PF的状态:mov al,89hadd al,aladd al,9dhcmp al,0bchsub al,aldec alinc al答:⑴ al=89h⑵ al=12h,CF=1,ZF=0,SF=0,OF=1,PF=1,AF=1⑶ al=afh, CF=0,ZF=0,SF=1,OF=0,PF=1,AF=0⑷ al=afh, CF=1,ZF=0,SF=1,OF=1,PF=1,AF=0⑸ al=00h,CF=0,ZF=1,SF=0,OF=0,PF=1,AF=0⑹ al=ffh, CF=0,ZF=0,SF=1,OF=0,PF=1,AF=1⑺ al=00h,CF=0,ZF=1,SF=0,OF=0,PF=1,AF=12.12请分别用一条汇编语言指令完成如下功能:(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加并把结果送到AL中。
用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。
(4)用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。
(5)把数0A0H与AL寄存器的内容相加,并把结果送回AL中。
答:⑴ add dx, bx;⑵ add al,[bx+si];⑶ add [bx+00b2h],cx⑷ add word ptr [0520h],3412h⑸ add al,0a0h2.13设X,Y,Z,V均为16位带符号数,分别装在X,Y,Z,V存储器单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。
imul ymov cx,axmox bx,dxmov ax,zcwdadd cx,axadc bx,dxsub cx,540abb bx,0mov ax,vcwdsub ax,cxabb dx,bxidiv x答:(V -( X * Y + Z - 540 ) )/ X2.14给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。
mov ax,1470hand ax,axor ax,axxor ax,axnot axtest ax,0f0f0h答:⑴ ax=1470h⑵ ax=1470h,CF=0,ZF=0,SF=0,OF=0,PF=0⑶ ax=1470h,CF=0,ZF=0,SF=0,OF=0,PF=0⑷ ax=0000h,CF=0,ZF=0,SF=0,OF=1,PF=1⑸ ax=0ffffh, CF=0,ZF=0,SF=0,OF=1,PF=1⑹ ax=0ffffh, CF=0,ZF=0,SF=1,OF=0,PF=1 2.16假设DS=2000H,BX=1256H,TABLE的偏移地址是20A1H,物理地址232F7H处存放3280H,试问执行下列段内间接寻址的转移指令后,转移的有效地址是什么?答:⑴ 1256h;⑵ 3280h2.17判断下列程序段跳转的条件(1)xor ax,lelehje equal(2)test al,10000001bjnz there(3)cmp cx,64hjb there答:⑴ ax=1e1eh;⑵ al=1******1b;⑶ cx<64h2.18如下是一段软件延时程序,请问NOP指令执行了多少次?xor cx,cxdelay: noploop delay2.19 有一个首地址为array的20个字的数组,说明下列程序段的功能。
mov cx,20mov ax,0mov si,axsumlp: add ax,array[si]add si,2loop sumlpmov total,ax答:将array数组的20个字(无进位)累加,其和存入total单元。
2.20按照下列要求,编写相应的程序段:(1)由string指示的起始地址的主存单元中存放一个字符串(长度大于6),把该字符串的第1个和第6个字符(字节量)传送给DX寄存器。
(2)有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和 buffer2中,编写程序段完成DX.AX←buffer1-buffer2功能。
(3)编写一个程序段,在DX高4位全为0时,使AX=0;否则,使AX=-1。
(4)把DX.AX中的双字右移4位。
(5)有一个100个字节元素的数组,其首地址为array,将每个元素减1(不考虑溢出或借位)存于原处。
答:⑴ mov dl,stringmov dh,string+5⑵ mov ax,word ptr buffer1sub ax, word ptr buffer2mov dx,word ptr buffer1+2sbb dx,buffer2+2⑶ test dx,0f0hje t1mov ax,-1jmp donet1: mov ax,0done: …..⑷ mov ax,1234hmov dx,5678hmov cx,4lp1:shr dx,1rcr ax,1loop lp1⑸ lea bx,arraymov cx,100lp1:sub [bx],1inc bxloop lp12.25编写一个程序段:先提示输入数字“Input Number:0~9”,然后在下一行显示输入的数字,结束;如果不是键入了0~9数字,就提示错误“Error!”,继续等待输入数字。
答:.model small.stack 100h.datamessage db “Input Number : 0~9”,0dh,0ah,“$”error db “Error!”,0dh,0ah,“$”.code.startupmov dx,offset messagemov ah,09hint 21hbegin1: mov ah,01hint 21hcmp al,“0”jb err1 cmp al,“9”ja err1mov dl,almov ah,02hint 21h.exiterr1: mov offset errormov ah,09hint 21hjmp begin1end第三章3.11请设置一个数据段,按照如下要求定义变量:(1)my1b为字符串变量,表示字符串“Personal Computer”。
(2)my2b为用十进制数表示的字节变量,这个数的大小为20。
(3)my3b为用十六进制数表示的字节变量,这个数的大小为20。
(4)my4b为用二进制数表示的字节变量,这个数的大小为20。
(5)my5w为20个未赋值的字变量。
(6)my6c为100的符号常量。
(7)my7c为字符串常量,代替字符串“Personal Computer”。
答:my1b db “Personal Computer”my2b db 20my3b db 14hmy4b db 00010100bmy5w dw 20 dup(?)my6c equ 100my7c equ < Personal Computer >3.14设在某个程序中有如下片段,请写出每条传送指令执行后寄存器AX的内容:;数据段org 100hvarw dw 1234h,5678hvarb db 3,4vard dd 12345678hbuff db 10 dup(?)mess db ‘hello’;代码段mov ax,offset messmov ax,type buff+type mess+type vardmov ax,sizeof varw+sizeof buff+sizeof messmov ax,lengthof varw+lengthof vard答:offset varb = 0104hoffset mess = 0114htype buff = 1;type mess = 1;type vard = 4sizeof varw = 4;sizeof buff = 10;sizeof mess = 5lengthof varw =2;lengthof vard = 13.15假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的具体错误原因。