微机原理课后习题解答.docx

上传人:夺命阿水 文档编号:1801280 上传时间:2025-01-04 格式:DOCX 页数:35 大小:96.98KB
返回 下载 相关 举报
微机原理课后习题解答.docx_第1页
第1页 / 共35页
微机原理课后习题解答.docx_第2页
第2页 / 共35页
微机原理课后习题解答.docx_第3页
第3页 / 共35页
微机原理课后习题解答.docx_第4页
第4页 / 共35页
微机原理课后习题解答.docx_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《微机原理课后习题解答.docx》由会员分享,可在线阅读,更多相关《微机原理课后习题解答.docx(35页珍藏版)》请在课桌文档上搜索。

1、微机原理月也第一章绪论习题与答案1 .把下列:进制数转换成十进制数、十六进制数及BCD码形式。(1)101110B=2 2)01011101.1016解:(1) 101110B=178D=B2H=*01011110)BCD(2) 01011101.101B=93.625D=SD.AH=(1.1.11.011000100101)BCD2.把下列I进制数列换成二进制效。(1) 100DB(2) 100OD=67.2ID=解:(1) 100D=011.100B(2) 100od=Iiiiio100ob(3) 67.21D=1000011.001IB3.把下列十六进制数转换成十诳制数、二进制数.(1)

2、 2B5H=(2) 4CD.A5H=解:(1) 2B5H=693D=0010101101016(2) 4CD.A5H=1229.6445D=010011001101.10100101B4.计算下列各式.(1) A7H*B8H=(2) E4HA6H=解:(1) A7H+B8H=15FH(2) e4H-A6H=3EHS.写出下列十进制数的原料、反利和补码.(1) +89(2) -37解:(1)+89原码、反码和补码为:01(H1001.B(2)卜37原码=Io100IO1.B37)反码=11011010B卜37)补码11011011B6.求下列用二进制补码表示的十进制数(1) (011101补=(

3、2) (10110101)补解:(1) (011101)补=77D(2) (10110101)补三-75D7.请用8位二进制数写出下列字符带奇校验的ASCII码。(1) C:10011(2)O:1001111(3) M:1.1101(4)P:1010000解:(1)Cs0111(3) M:11001101(2)O:01001111(4) P:11010000011110101111108 .请J1.J8位二进制数写出下列字符带偶校验的ASCII码,+:0101011#:01011解:(1)+:00101011(2)=:10111101#:101011(4):101111109 .狄述CPU中P

4、C的作用,解:PC是CPU中的程庠计数器,其作用是供应要执行指令的地址,其中段地址存放在8086/8088的段寄存器中.12 .8086/8088CPU中彳j几个通用寄存器?有几个变址舟存器?有几个指针诰存器?通常哪几个寄存器亦可作为地址寄存涔运用?答:8086/8088CPU中共有:8个16位的通用寄存涔AX、BX.CXxDX、BP.SP.SI.D1.;2个变址寄存器ShDI;2个指针寄存器BP、SP;其中BX、BPxSkD1.亦可作地址寄存器。13 .Inte1.8086J8088有何区分?答:8086,8088的区分主要表现在以下几个方面:第一、8086的指令队列可以容纳6个字节,每个总

5、线周期在存储器中取出2个字节指令代码填入队列.而8088只能容纳4个字节,且每个总线周期只能取出1个字节指令代码.共次,8086外部数据总线宽位为16位,8088外部数据总税宽度只有8位.留意:8086和8088外部数据总线的宽度不同将导致扩展主存储据及输入/输出接口时系统地址城和数据线连接方式的不同,第三、其他不同的引脚定义:(1)ADis-ADo,在8086中为地址/数据复用,而在8088中ADVADg改为AsAs只作地址线HI:(2)34、28号引脚定义不同.14 .8086/8088CPU匚作在班小模式时:当CPU访问存储器时,要利用孙些信号?当CPU访问外设接口时,要利用哪些信号?答

6、:8086/8088CPU工作在破小模式时,若访问在依据,需用到以下信号:M/石、A1.E.DTiR.DN,READY、丽、IW,而、ADo-ADis,Ai9SAS%若访闫外设,需用到以下信号:Mi.A1.E.TR.DN,READY,而、而、ADoAD5.15 .试指出卜列运算后的各个状态标记,并说明进位标记和溢出标记的区分:(1) 1278H+3469H答:CF=OAF=IZF=OSF=OOF=OPF=I(2) 54E3H-27A0H答:CF=OAF=OZF=OSF=OOF=OPF=O(3) 3881H3597H答:CF=OAF=OZF=OSF=OOF=OPF=I(4) O1E3H-O1E3

7、H答:CF=OAF=OZF=ISF=OOF=OPF=I其中,进位标记CF用于判别无符号数运算是否超出数的我示范用.而溢出标记OFH1.于判别带符号数运算是否超出数的表示范困奇偶标记PF只能推断结果陋位中广的个数为奇数还是偶数。16 .什么是设t地址?什么是物理地址?它们之间有什么联系?各用在何处?答:逻辑地址由两个16位的部分即段基址和偏移信组成,陵在程序中出现的地址都我示为逻辑地址形式:物理地址是一个20位的地址,它是唯一能代表存储空间每个字节中元的地址,一般只出现在地址总线上。出于8086/8088CPU中的寄存涔只有16位长,所以程序不能干脆存放20位的物理地址,而必衡借助逻辑地址,即用

8、两个16位的寄存器来表示物理地址.他们之间的关系是:物理地址=段基址-164的格及:另外,一个物理地址可对应多个逻辑地址.设现行数据段位于存储瑞080000H-0BFFFFH单元,DS段寄存器内容为多少?答:DS段寄存器内容为OBOOOH.18 .在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?答:逻辑地址是在程序中对存储器地址的种表示方法,山段基址和段内偏移地址两部分组成,都是16位的二进制代码,如1234H:88H,偏移地址是指段内某个存储单元相对该段首地址的差值.物理地址是8086芯片引线送出的20位地址码,物理地址=段荔址”6+偏移地址,用来指出一个特定的存储单元.19 .给

9、定一个存放数据的内存单元的偏移地址是20C0H.(DS)=OCOEOH.求出该内存单元的物理地址,答:物理地址:0C2EC0H.20 .8088088为什么采纳地珏/数据引线发用技术?答:考虑到芯片成本和体积,808的088采纳40条引戏的时装结构,40条引俄引出808的088的全部信号是不够川的.采纳地址/数据线M用引线方法可以解决这一冲突,从逻耨角度,地址与数据信号不会同时出现,二者可以分时更用同一组引线.21 .怎样确定8086的最大或最小工作模式?答:引线MN/市的逻轿状态确定8086的工作模式,MN/正引线接高电平,8086坡设定为最小模式,MN标引战接低电平,8086被设定为最大模

10、式。22 .8086基本总线周期是如何组成的?答:基本总设周期由4个时钟(C1.K)周期组成,按时间依次定义为T1.T2、T3,T423 .在受8086的微计算机系统中.存储器是如何组织的?存谛器是如何与处理零总线连接的?记足信号起什么作用?答:8086为16位微处理器,可访问IM字节的存储器空间:1M字节的存储器分为两个512K字节的存储体,分别命名为隅存储体和奇存储体:偈体蟠据线连接D7DO体选”信号接地址线A0:奇体的数据纹连piSD8,“体选”信号接而正信号:AO信号行效时允许访问供体中的低字节存储单元,标信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、裔字节访问及

11、字访问.24有HI20个字?I成的数据国.其起始地址为610AHUCE7H试写出该数据Mfi末单元的实际地址PA.首单元地址:610A0H+1.CE7H=62D87H末单元地址:62D87H-27H=62DAEH内容25,有两个16位的字31OAH、5E7FH,它们在8086系统存储器中的地址为0013OH和00135H.试画出它们的存储涔示意图.地址13OHOOB1.H00132H133H134H135H136H26 .试说明8086CPU的限制引脚A1.E的作用。答:8086的低位地址规与数据浅复川,为保证地址践维持足够的时间,需运用A1.E信号将低位地址线通过锁存器保存,以形成系统地址总

12、线.第三章80x86指令系统习题与答案1、指出卜列指令中操作数的寻址方式(8086系统).(1)MOVAX.100(2)MOVAX.(100)(3)MOVD1.BPSI(4)MOVB.CX(5)MOVD.(S1.6)MOV1234HB.DS(7)MOV(DI+5678H.A1.(8)MOV12BPDI.(9)POPCX(10)MOVAX.(BXSH10)BH解:目的操作数糠搬作数(1)MOVAX.100寄存器寻址马上数寻址(2)MOVAX.1寄存器寻址干脆寻址(3)MOVD1.,BP+SI寄存器寻址葩址变址寻址(4)MOVBXCX寄存器间接寻址寄存器寻址(5)MOVDX,SI)寄存器寻址寄存器

13、间接寻址(6)MOV1234HBX.DS寄存器相对寻址寄存器寻址(7)MOVDI+5678H.A1.寄存器相对寻址寄存器寻址(8)MOV12伯PnDmBH.相对般址变址3址出存器寻址(9)POPCX隐含为地枚寄存器寻址(10)MOVAX,BXSI+10寄存器寻址相对基址变址寻址2、指出下列指令中操作数的寻址方式(80386系统).(1) MOVEB12H,AX(2)MOVIEBP+ED2,E8X(3)MOVEBX*4.BX(4)MOVEDX.EAX+ESI*812H解:目的操作数源操作数1)寄行器相对寻址寄存器寻址(2)基址比例变址寻址寄存器寻址(3)比例比址寻址寄存器寻址(4)寄存器寻址相对

14、基址比例变址寻址3、指出以下指令中,哪些指令是琴法的,并说明为什么(8086系统).(1)PUSH1234H(2)MOVCS.AX(3)IN/X.300(4)MOVAX.DX+12)(5)MOVBX.B(6)MOVDS.10H(7)XCHGA1.A1.(8)MOVA1.,100H(9)MOVDX.A1.(10)1.EABitB5)(11)1.EADX,BX(12)MOVI100OH1.12H(13)ADDAX.DS(14)SUB(0100H.BYTEPTR(01.)(15)SH1.B1.2(16)SHRC:1.C1.(17)MU1.A1.B1.INT400(2) (A1.)=O1.H.(B1.

15、)=02H.执行指令:CMPA1.B1.(3) (A1.)=OFFH.执行指令:INCA1.(4) (A1.)=O.执行指令:DECA1.(5) (A1.)=OFOH.(B1.=04H.执行指令:IMU1.B1.(6) (AX)=IFOH.(B1.)=08H.执行指令:DIVB1.(7) (A1.)=12H.(B1.)=34H.执行指令:TESTA1.B1.(8)(A1.)=98H.执行指令;SA1.A1.,1解:OF0SFZFAFPFCF(1)0001(2)010111(3)00111(4)01011X(5)00(6)一(7)00000(8)10011注:。次示结果为0,1表示结果为1,表示

16、结果不变,一衣示结果不确定.9、在8086系统下,编写实现如下功能的程序段:(1)从地址为80H的端口中读入一个字节:(2)假如该字节最高位为“V,则符字节OFFH送到地址为81H的端1.1.中.并退出程序:(3)假如该字节最高位为(F,则转向第(1)步,接着循环扫描.解:参考程序段:AGAIN:INA1.,80HTESTA1.,80HJZAGAINMOVA1.zOFFHOUT81H,A1.10、我们知道,MOV指令并不能干腌修改CS、IP的伯,但5实上,我们还可以通过其他方法来达到脩改CSJP的目的,试编,弓个程序段,使该程序段运行后,(CS)=O1.OOH.(IP)=OOOOH解:方法一、

17、利用段间返I可指令RETF:MOVAX.0100HPUSHAX;段夔址入栈MOVAX.0PUSHAX:偏移破入栈RETF方法二、利用JMP指令实现段间跳抬,假设ADDR为双字变量:MOVWORDPTRADDR.0:WoRDPTRADDRf保格量MOVWORDPTRADDR+2,0100H:WoRDPTRADDR+26段基址JMPDWORDPTRADDR11.写证能完成下述操作的指令,(1)将马上数1234H送至DS寄存器,(2将存谛单元3000H和内容送至4000H单元。(3)将累加器AX与寄存器CX中的内容对调,答案:(I)MOVAX,1234HMOVDS.AX(2) MOVAX.(3000

18、HMOV(4000H1AX(3) XCHGAX,CX12 .编程:将数据段中以BX为偏移地址的连续4单元的内容倾倒过来。答案:MOVA1.,BXCHGA1.1(BX+3)MOV(BX)1A1.MOVA1.,(B1XCHGA1.1(BX+2MOVBX+11A1.13 .AX寄存器清零有4种方法.试写出这4条指令.答案:MOVAX.OOHSUBAX.AXANDAX.OOHXORAX.AX14 .运用一条龙辑运舞指令实现卜冽要求:使A1.高4位不变,低4性为O(2)使A1.豉高位置1,后7位不变。(3)使A1.中的brt3,bit4变反,其余位不变,(4)测试推断C1.中的bit2.brt5.bit

19、7是否都为1。答案:(I)ANDA1.OFOH(2)ORA1.80H(3)XORA1.18H4TESTA1.0A4H15 .试分析卜面的程序段完成什么功能.MOVC1.4SH1.AX1C1.SH1.B1.C1.MOVA1.B1.SHRDH.C1.ORA1.DH答案:将AX中间8位,BX的低4位,DX的高4位姐成一个新字存放在AX中。16 .若要将源小100个字节数据传送到目标串单元中去,设源省首址的偏移地址为25H.目标即首址的俅楼地址为1400H,诂编号程序实现以卜功能(1)完成源串到目标审的搬移.(2比较两用是否完全相同,若两串相同.则BX寄存器内容为0:若两弟不同,则BX指向源引中第一个

20、不相同字节的地址,且该字节的内容保剧在A1.的寄存器中。答案:C1.DMOVCX.100MOVSI.2500HMOVDI.1400HREPMOVSBC1.DMOVCX.100MOVSI.2500MOVDI.1400REPECMPSBJZEQQDECSIMOVBX.SIMOVA1.,SIJMPSTOPEQQ:MOVBX.0STOP:H1.T17 .设若标记寄存器原佗为OAI1.H,(SP)=0060H,(A1.)=4.下列几条指令执行后,标记寄存器、AX,SP的值分别是多少?PUSHF1.AHFXCHGAH.A1.PUSHAXSAHFPOPF答:指令执行后标记寄弃器的值为0411H,AX=041

21、1H,SP=OOSEH118 .假如在程序的括号中分别填入指令:(1) 1.OOP1.20(2) 1.OOPNE1.20(3) 1.OOPE1.20试说明在三种状况下,当程序执行完后,AX、BX,CX,DX四个寄存器的内容分别是什BEGIN:MOVAXzO1.MOVBX,02MOVDX,03MOVCX,041.20:INCAXADDBX.ASHRDXj答案:(1)(AX)5(BX)B16(CX三0DX)02)AX)=3(BX)=7=2(DX)=O(3)AX)=2(BX)=4=3DX)=119 .变IftNI和N2均为2个节的非压海BCD数码.请写出计算NI与N2之差的指令序列。答案;MOVAX

22、,OMOVAUN1.SUBA1.,N2AASMOVD1.,A1.MOVAUN1.f1.SBBA1.,N2+1AASMOVDHzA1.20 .在已学的指令中,可实现累加器酒O的堆条指令有哪些?比较它们的功能.21 (1)MOVAX.O:仅将累加器消0.不会影响任何标记位(1) SUBAX.AX;累加器清O的同时影响全部状态标记,详细地有:ZJPF置1,CF.AF、SF.OF均清O(3) ANDAX.O:招累加普清O.ZF.PF置1.CF.OF,SFjfiO(4) XORAX.AX:将累加器清O.ZF、PF置1.CF,OF.SF清O21 .已知DS)=2000H,有美的内存单元依为:(210H)=

23、00H,(21001H)=12H.(212OOH)=H,(212O1H)=1OH,(232H)=20H.(232O1H)=3OH.(23400H)=40H.(23401H)=30H,(23600H)=60H,(236O1H)=3OH,符号COUNT的偏移地址为120OH执行下列指令后,寄存器AX、BX,S1.的值分别是多少?MOVBX.OFFSETCOUNTMOVSI.BMOVAX,COUNTSI11BX答:执行结果为(BX)三1200H.(SI)100OH.(AX)=3040H.22 .设若内存单元DATA在数据段中儡移出为24COH处,24COH24C3H单元中依次存放着55H、66H、7

24、7H、88H.下列几条指令执行后,寄存器AX、B,C1.,SI,DSMift分别是多少?MOVAX.DATA1.EASI,DATAMOVC1.SI1.DSBX.DATA答:执行结果为(AX)=6655H,=24C0H.(DS)=8877H.23 .若=OACFOH(26.谀VAR字单元的值为x,F1.字单元的值为y,试编程按以下要求给y赋值:”230Y=O3Ox1.-2x30,则转P1.US2CMPAX.1J1.MIN2;xJOOFEHGO::后续处理简析;本例中并未说明VAR字节单元是带符号故还是无符号数,读者在运用推断转移指令时可随意选用。若当作带符号数,应运用JG、JUJGE.J1.E等

25、指令,如参考程序:若当作无符号数则应运用JA、JB、JAEsJBE等指令.第四章80x86汇编语言程序设计习题与答案1、指出以下数据定义伪指令所安排的字节数(8086系统)。(1)DATA1.DB10.?.A(2)DATA2DW10DUP2.3DUP(),1)(3) DATA3DB,HE1.1.O,WOR1.D!.(4) DATA4DWDATA4解:1)3字节:6字节:(3)88字节:(430字节.3、指出以下指令中哪内是无效的,并说明缘由。(1)ADDRDB$(2)DATADBFOH.12H(3)1.DATADW1234H(4)VARDWVAR1.;VARI为一个字节变型(三)MOVAX.I

26、O-VAR1:VAR1.为一个字变量(6)MOVBX.VAR2421:VAR2为一个字变里解:(1)非法.地址计数器$是32位数:(2)非法,以字母升头的16进制数应在前面加“0”.即应为“0F0H-:(3)非法,变属名非法,不能以数字开头:(4)合法;(5)非法,地址表达式不能是“常数地址”:(6)非法.地址表达式不能出现乘法.4,假设已定义数据段如下:DATASEGMENTORG100HDATA1.DB10DUP(1,2,3)DATA2DWDATA1.$DATAENDS且改寄存零DS已初始化为该数据段的段基址(假设段基址为1234H).请指出以下指令执行后,相应的寄存器中的内容.(1) M

27、OVAX,WORDPTROATA1.;(AX)=(2) MOVBX.DATA2;(BX)=(3)MOV(4) MOV(5) MOV(6) MOV(7) MOV(8) MOVOGDATA22DX,OFFSETDATA2SI.SEGDATA1.DI.1.ENGTHDATA1.SP.TYPEDATA1.BP,SIZEDATA2:(CX)M:(DX)=:)=s(DI)=:(SP)=:(BP)=解:(1)(AX)=0201H;MOVCU4SHRBH,C1.ADDBH,30HOUTPUTBH:整示千位数POPBXPUSHBXANDBH,OFHADDBH,30HOUTPUTBH:显示百位数POPPUSHMO

28、VCU4SHRB1.,C1.ADDB1.,30HOUTPUTB1.显示十位数POPBXANDB1.OFHADDB1.,30HOUTPUTB1.V显示个位数OUTPUTOAHOUTPUTODHJMPAGAININPUTPROCFAR;输入一个4位十进制数的过程BEGIN:MOVCX,4MOVBz01.:SH1.BXr1SH1.BX,1SH1.Bz1.SH1.BXzI*BX的值乘以16MOVAHr1INT21H输入CMPA1.,IBH.ESC键退出JZDONECMPA1.JBERROR*非数字,出错CMPA1.9JAERROR*.非数字出错SUBA1.f30HXORAH,AHADDBzAX(将输入

29、加到BX中1.OOP1.RETERROR:1.EADfMSG3MOVAH,9INT21HJMPBEGINDONE:MOVAH,4CHINT21HINPUTENDPCODEENDSENDMAIN7,在8086系统下端写完整程序,实现两个32位带符号数相娓.帙设被乘数存放在以字变收MU1.1.起先的连续4个字节中,乘数存放在以字变属MU1.2起先的连续4个字节中中,相柒结果存放在以字变MRES起先的连续8个字节中.解:参考程序:DATASEGMENTMU1.1.DWoffffhzoffffh:被乘数MU1.2DW5678Hj234H;乘数RESDW4DUP(O);站果DATAENDSCODESEG

30、MENTASSUMEC$:CODE,DSrDATAMAINPROCFARPUSHDSMOVAX,OPUSHAXMOVAX1DATAMOVDS,AXMOVCXzMU1.1.MOVBPfM1.12MOVSI.MU1.2MOVD1.zMU1.2+2TESTBP,80H:被乘数是否为负数JZNEXT1.NOTBP:为负数,则取反加1NOTCXADDCX,1ADCBfONET1:TESTDIz8000H:乘数是否为负数JZNEXT2NOTSI:为负数则取反加1NOTD1.ADDS,1.ADCD1.ONEXT2:MOVAX,SI:相乘过程MU1.CXMOVRESrAXMOVRES*2rDXMOVAXfSI

31、MU1.BPADDRES+2,AXADCRES+4rDXMOVAX,D1.M1.CXADDRES+2rAXADCRES4rDXMOVAX,D1.MU1.BPADDRES+4rAXADCRES6rDXMOVAX,MU1.12XORAX,MU1.2+2;扣:初被乘数和乘数是否同号JNSDONE:同号,则结果为止数,无须修改结果NOTRES:不同号,则结果为负数,须取反加1NOTRES2NOTRES+4NOTRES+6ADDRESzIADCRES2rOADCRESMOADCRES+6,ODONE:RETMAINENDPCODEENDSENDMAIN8、在8086系统下,编写完整程序,找出字节数组AR

32、RAY中的最大值和最小值,假设ARRAY的长度为100个字节,集个字节为,个无符号数,程序执行后最大伯将存放到字节变中MAX中,最小值则存放到字节变贵M1.N中。解:参考程序:DATASEGMENTARRAYDB100DUPO:字节数组MAXDB:最大值MINDB:最小伯DATAENDSCODESEGMENTASSUMECS:CODE,DSrDATAMAINPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AX1.EASI,ARRAYC1.DMOVBH,O:存放作时最大值的寄存器MOVB1.OFFH;存放临时坡小伯的寄存器MOVCX.100AGAIN:1.ODSBCMPA1.rBHJNANEXT1.MOVBH,A1.;假如当前数值比临时最大值大,则代替NET1:CMPA1.,B1.JNBNET2MOVB1.,A1.:假如当前数值比临时公小值小,则代龄NEXT2:1.OOPAGAINMOVMAX,BHM

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号