您好,欢迎访问三七文档
0微机原理习题册第1章数制和码制1.将下列十进制数分别转换为二进制数(1)147(2)4095(3)0.625解:147=10010011B4095=111111111111B0.625=0.101B0.15625=0.00101B2.将下列二进制数分别转换为十进制数(4)0.15625(1)10110.101B(2)10010010.001B解:(3)11010.1101B10110.101B=22.62510010010.001B=146.062511010.1101B=26.81253.将二进制数转换成十六进制数(1)10010101B(2)1101001011B(3)1111111111111101B(4)0100000010101B(5)01111111B(6)010000000001B解:(1)95H(2)34BH(3)FFFDH(4)0815H(5)7FH(6)401H4.已知a=1011B,b=11001B,c=100110B,按二进制完成下列运算,并用十进制运算检查计算结果:(1)a+b;(2)c-a-b;(3)a·b;(4)c/b;解:a=1011B=11,b=11001B=25,c=100110B=38(1)a+b=100100B=36(2)c-a-b=10B=2(3)a·b=100010011B=275(4)c/b=1……1101B(=13)5.设机器字长为8位,写出下列各数的原码和补码:(1)+1010101B(2)-1010101B(3)+1111111B(4)-1111111B(5)+1000000B(6)-1000000B解:(1)+1010101B原码01010101B补码01010101B(2)-1010101B原码11010101B补码10101011B(3)+1111111B原码01111111B补码01111111B(4)-1111111B原码11111111B补码10000001B(5)+1000000B原码01000000B补码01000000B(6)-1000000B原码11000000B补码11000000B6.已知a=00111000B,b=11000111B,计算下列逻辑运算:(1)aANDb;(2)aORb;(3)aXORb;(4)NOTa;解:(1)00000000B(2)111111111B(3)111111111B(4)11000111B7.求下列组合BCD数的二进制和十六进制表示形式:(1.14)(1)3251;(2)12907;(3)2006解:(1)0011001001010001B,3251H(2)00010010100100000111B,12907H(3)0010000000000110B,2006H8.设下列四组为8位二进制补码表示的十六进制数,计算a+b和a-b,并判定其结果是否溢出:1(1)a=37H,b=57H;(2)a=0B7H,b=0D7H;(3)a=0F7H,b=0D7H;(4)a=37H,b=0C7H。解:(1)a=37H,b=57H;a+b=8EH;a-b=[-1]E0H=-32(2)a=0B7H,b=0D7H;a+b=[1]8EH=-114;a-b=[-1]E0H=-32(3)a=0F7H,b=0D7H;a+b=[1]CEH=-50;a-b=20H=32(4)a=37H,b=0C7H;a+b=FEH=-2;a-b=[-1]70H=1129.写出“0”到“9”共10个数符的ASCII码。答:“0”的ASCII码是30H,“1”的ASCII码是31H,“2”的ASCII码是32H,“3”的ASCII码是33H,“4”的ASCII码是34H,“5”的ASCII码是35H,“6”的ASCII码是36H,“7”的ASCII码是37H,“8”的ASCII码是38H,“9”的ASCII码是39H。10.将下列算式中的十进制数表示成组合BCD码进行运算,并用加6和减6进行修正。(1)38+42(2)99+88解:(1)38BCD(2)99BCD第2章8086CPU结构与功能1.微处理器内部结构由那几个部分组成?阐述各部分的主要功能?答:微处理器内部结构主要由算术逻辑运算单元(ALU)、控制器、工作寄存器和I/O控制逻辑组成。算术逻辑运算单元是CPU的核心,它完成所有的运算操作;控制器是CPU的“指挥中心”,只有在它的控制下,CPU才能完成指令的读入、寄存、译码和执行;工作寄存器用于暂时存储寻址信息和计算中间结果;I/O控制逻辑用于处理I/O操作。2.为什么地址总线是单向的,而数据总线是双向的?答:由于在计算机中地址总是由CPU产生的,因此地址总线是单向的。而数据可从CPU写到存储器,也可从存储器读到CPU,因此数据总线是双向的。3.8086/8088微处理器内部有哪些寄存器?其主要作用是什么?(2.4)答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作为通用数据寄存器。SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。4.如果某微处理器有20条地址总线和16条数据总线,问:(1)假定存储器地址空间与I/O地址空间是分开的,则存储器地址空间有多大?(2)数据总线上传送的有符号整数的范围有多大?解:存储空间为220=1048576=1M字节,数据总线上传送的有符号整数的范围+42BCD+88BCD7AH121H+06H+66H80BCD187BCD2为-32768~+32767。5.从下列各数中减去4AE0H,求出其结果及标志位CF、AF、SF、ZF、OF和PF的值:(1)1234H(2)5D90H(3)9090H(4)EA04H解:(1)1234H-4AE0H=C754H;CF=1,AF=0,SF=1,ZF=0,OF=0,PF=0(2)5D90H-4AE0H=12B0H;CF=0,AF=0,SF=0,ZF=0,OF=0,PF=0(3)9090H-4AE0H=45B0H;CF=0,AF=0,SF=0,ZF=0,OF=0,PF=0(4)EA04H-4AE0H=9F24H;CF=0,AF=0,SF=1,ZF=0,OF=0,PF=16.什么是逻辑地址?什么是物理地址?它们之间的关系如何?答:在逻辑空间中每条指令的地址和指令中要访问的操作数地址统称为逻辑地址。内存是由若干个存储单元组成的,每个存储单元有一个编号,这种编号可惟一标识一个存储单元,称为内存地址(或物理地址)。7.写出下列存储器地址的段地址、偏移地址和物理地址:(1)2134:10A0(2)1FA0:0A1F(3)267A:B876解:(1)段地址:2134H;偏移地址:10A0H;物理地址:223E0H(2)段地址:1FA0H;偏移地址:0A1FH;物理地址:2041FH(3)段地址:267AH;偏移地址:B876H;物理地址:32016H8.给定一个数据的有效地址为2359H,并且(DS)=490BH,求该数据的物理地址。答:4B409H9.如果在一个程序段开始执行之前,(CS)=OA7F0H,(IP)=2B40H,求该程序段的第一个字的物理地址。解:物理地址为:0A7F0H×10H+2B40H=A3330H。10.IBMPC有哪些寄存器可用来指示存储器的地址?答:指示存储器地址的寄存器有:SI,DI,BX,BP11.已知AH=56H,AL=65H,则AX的值是多少?若AX=AX+0202H,则AH和AL的值分别是多少?答:AX=5665H;AH=58H;AL=67H。12.在8086CPU中,从逻辑地址计算出物理地址的部件是什么?答:地址加法器。13.当8086CPU重启后,指令指针指向的内存单元的物理地址是多少?答:8086CPU重启后,CS=0FFFFH,IP=0000H,因此指令指针指向的内存单元的物理地址PA=CS×10H+IP=0FFFF0H。第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保持6个字变量:34512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:‘BYTE’,’word’,’WORD’;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。解:(1)var1DW4512H,4512,-1,100/3,10H,65530(2)var2DB’BYTE’,’word’,’WORD’(3)buf1DB100DUP(?)(4)buf2DB7DUP(5DUP(55H),10DUP(240))(5)var3DBLENGTHbuf1(6)pointerDWvar1,var22.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字节变量,L1为标号):(3.3)答:(1)MOVSI,100;指令正确,源:立即数寻址,目的:寄存器寻址(2)MOVBX,VAR1[SI];指令正确,源:寄存器相对寻址,目的:寄存器寻址(3)MOVAX,[BX]器寻址;指令正确,源:寄存器间接寻址,目的:寄存(4)MOVAL,[DX];指令错误,DX不能用作为地址寄存器(5)MOVBP,AL;指令错误,类型不一致(6)MOVVAR1,VAR2传送;指令错误,MOV指令不能从存储器到存储器(7)MOVCS,AX;指令错误,CS不能用作为目的操作数(8)MOVDS,0100H;指令错误,MOV指令不能将立即数传送到段寄存器(9)MOV[BX][SI],1;指令错误,类型不定(10)MOVAX,VAR1+VAR2;指令错误,MOV指令中不能完成加法运算(11)ADDAX,LENGTHVAR1;指令正确,源:立即数寻址,目的:寄存器寻址(12)ORBL,TYPEVAR2;指令正确,源:立即数寻址,目的:寄存器寻址(13)SUB[DI],78H;指令错误,类型不定(14)MOVSVAR1,VAR2;指令正确,源:隐含寻址,目的:隐含寻址(15)PUSH100H;指令错误,立即数不能直接压入堆栈(16)POPCS;指令错误,CS不能用作为目的操作数(17)XCHGAX,ES;指令错误,XCHG指令中不能使用段寄存器(18)MOVDS,CS器;指令错误,MOV指令不能从段寄存器到段寄存(19)JMPL1+5;指令正确,段内直接转移(20)DIVAX,10;指令错误,DIV指令格式错误4(21)SHLBL,2;指令错误,移位指令的移位数要么是1,要么是CL(22)MOVAL,15+23;指令正确,源:立即数寻址,目的:寄存器寻址(23)MULCX;指令正确,源:寄存器寻址,目的:隐含寻址(24)XCHGCL,[SI];指令正确,源:寄存器间接寻址,目的:寄存器寻址(25)ADCCS:[0100],AH;指令正确,源:寄存器寻址,目的:直接寻址(26)SBBVAR1-5,154;指令正确,源:立即数寻址,目的:直接寻址3.设(DS)=2000H,(BX)=0100H,(SI)=0002H,(21000)=3412H,(20102)=7856H,(21200)=4C2AH,(21202)=65B7H,求下列指令执行后AX寄存器的内容:(3.6)(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[1200H](4)MOVAX,[BX](5)MOVAX,1100H[BX](6)MOVAX,[BX][SI](7)MOVAX,1100H[BX][SI]4.执行下列指令后,DX寄存器中的内容是
本文标题:微机原理习题及答案
链接地址:https://www.777doc.com/doc-2469878 .html