1、微机原理作业及参考答案修订1016第一章 计算机基础 (P32)1-1 电子管,晶体管,中小规模集成电路、 大规模、超大规模集成电路。1-2 把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入输出、接口电路及系统总线等所组成的计算机,称为微型计算机。微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.1-3 写出下列机器数的真值:(1)01101110 (2)10001101(3)01011001 (4
2、)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反= 1
3、1000000 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,试计算下列各式。(字长8位)(1)x1+y1补 (2)x1-y2补(3)x2-y2补 (4)x2+y2补(5)x
4、1+2*y2补 (6)x2+y2/8补答案:(1)x1+y1补=00010100+00100001补=00110101补=00110101(2)x1-y2补=x1补+-y2补=00010100+00100001=00110101(3)x2-y2补=x2补+-y2补=11101100+00100001=00001101(4)x2+y2补=x2补+y2补=11101100+11011111=11001011(5)x1+2*y2补=x1补+2*y2补=00010100+10111110=11010010(6)x2+y2/8补=11101100+y2/8补=11101100+11111100=1110
5、10001-7 用补码来完成下列运算,并判断有无溢出产生(字长为8位):(1)85+60 (2)-85+60(3)85-60 (4)-85-60答案:(1)x补+y补=01010101+00111100=10010001 = -111,有溢出(2)x补+y补=10101011+00111100=11100111 =-25,无溢出(3)x补+y补= 01010101+11000100=00011001 =25,无溢出(4)x补+y补=10101011+11000100=01101111 =111,有溢出1-8在微型计算机中存放的两个补码数,试用补码加法完成计算,并判断有无溢出产生。(1)x补+y
6、补=01001010+01100001=10101011 有溢出(2)x补-y补=01101100-01010110 = 01101100+10101010=00010110无溢出注: X补Y补=X补Y补 Y补的算法:将Y补连同符号位一起按位取反加11-9 试将下列各数转换成BCD码:(1)(30)10 (2)(127)10(3)00100010B (4)74H 答案:(1)(30)10 = (0011 0000)BCD (2)(127)10 = (0001 0010 0111)BCD(3)00100010B = 34 = (0011 0100)BCD (4)74H = (116)10 = (
7、0001 0001 0110)BCD1-10 下列各数代表什么ASCII字符: (1)41H (2) 72H(3) 65H (4) 20H答案:(1)41H =(0100 0001)2,代表字符A。(2)72H = (0111 0010)2,代表字符r。(3)65H = (0110 0101)2,代表字符e。(4)20H = (32)10 = (0010 0000)2, 代表SP。1-11 写出下列字符的ASCII码: 9,*,=,!,$答案: 9 0011 1001 * 0010 1010 = 0011 1101 ! 0010 0001 $ 0010 0001 1-19 地址总线:传递地址信
8、息的总线数据总线:传输数据控制总线:传输控制信号,时序信号和状态信息1-20 指令:人们规定计算机执行特定操作(加、减、乘、除、移位)的命令。指令系统:计算机全部指令的集合1-21 试用示意图说明内存储器的结构和读、写操作。 参考课本P22第2章 80X86/Pentium微处理器(P90)2-3 在执行指令期间,EU能直接访问存储器吗?为什么?答:不能,因为CPU由EU和BIU组成,在指令执行期间,EU负责到BIU指令队列去取指令,执行指令,如果需要从存储器取数据,由BIU负责总线操作。2-7 8086/8088有几位状态位?有几位控制位?其含义分别是什么?答:8086/8088有6位状态位
9、,3位控制位。状态位:CF进位标志;PF奇偶标志;AF辅助进位标志;ZF零标志;SF符号标志,OF溢出标志。控制位:IF 允许中断标志;DF方向标志;TF陷阱标志2-9 简述A0与/BHE在8086系统中的作用。答:8086有16根数据线,可以在一个总线读写周期中,读写一个字数据。8086CPU配置的内存分为奇地址和偶地址存储体。如果要读写一个字数据,需要分别从奇地址和偶地址存储体读写一个字节数据。由A0=0选通偶地址存储体,一个字节数据送到低八位数据线D0D7;由/BHE=0选通奇地址存储体,一个字节数据送到高八位数据线D8D15。2-15物理地址:存储区域的某一单元地址,地址信息是位二进制
10、代码 CPU是以物理地址访问存储器逻辑地址:编程时采用,由段基址和偏移量组成8086 CPU中的每个存储元在存储体中的位置都可以使用实际地址和逻辑地址来表示。同一物理地址可对应多个逻辑地址2-16 段寄存器指示的存储区域的起始地址称为段基址,偏移量是在某段内指定存储单元到段基址的距离。段基址和偏移量共同组成物理地址,物理地址PA=段基地址 16 + 偏移量2-17 A0000H-AFFFFh 2-18 B000H2-19设双字12345678H的起始地址是A001H,试说明这个双字在存储器中如何存放?答:地址为A001H、A002H、A003H、A004H的存储单元分别存放:78H、56H、3
11、4H、12H。存放原则:低地址存放低位数据,依次存放在连续的存储单元中。2-20 已知堆栈段寄存器SS=A000H,堆栈指示器SP=0100H,试将数据1234ABCDH推入堆栈,画出进栈示意图。最后栈顶SP=?答: SP=00FCH 物理地址 0A00FCH-0A00FFH的内容依次为CD,AB,34,12.注:SP:堆栈栈顶指示器,16位寄存器,存放栈顶的偏移地址。2-21 试求出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别。(1)1278H+3469H(2)54E3H-27A0H(3)3881H+3597H(4)01E3H-01E3H解:(1) 0001 0010 0111
12、1000 + 0011 0100 0110 1001 0100 0110 1110 0001CF=0 PF=1 AF=1 ZF=0 SF=0 OF=0 (2) 0101 0100 1110 0011 + 1101 1000 0110 0000 1 0010 1101 0100 0011 CF=0 PF=0 AF=0 ZF=0 SF=0 OF=0 (3) 0011 1000 1000 0001 + 0011 0101 1001 0111 0110 1110 0001 1000 CF=0 PF=1 AF=0 ZF=0 SF=0 OF=0 (4) 0000 0001 1110 0011 + 1111
13、 1110 0001 1101 1 0000 0000 0000 0000 CF=0 PF=1 AF=0 ZF=1 SF=0 OF=0注:16位操作数的最低二进制位:b0、最高二进制位:b15 AF:看b3是否向b4有进(借)位:辅助进借位 对减法运算,若采用补码的加法进行,则CF取反。2-24 什么是时钟周期,机器周期,总线周期,什么是指令周期?参考课本P55。第三章 80X86/Pentium指令系统(P135)3-4 (1) 7237H (2) D5B4H (3)637DH3-5 寻址方式:(1)MOV SI,2100H (2)MOV CX,DISPBX(3)MOV SI,AX (4)A
14、DC AX,BXSI(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地址表达式:标号/变量/常量+基址寄存器+变址寄存器 地址表达式:存储器操作数,以地址表达式的值为偏移地址3-7 (4) (10) (14)正确。3-8 (1)AX=3355H, SP=1FFFEH(2) AX=3355H, DX=4466H, SP=1FFFEH3-9 BX=4154H, 2F246H=6F30H3-10 BX=139EH3-11 SI= 0180H DS=2000H3-12 (1)
15、 CL=0F6H (2) CX=5678h(3)BX=0056H, AX=1E40H (4)SI=00F6H, SI=0024H(5)AX=5678H, 09226H=1234H3-13 (1)不影响 (2) AF=0,CF=1 OF=1 SF=0 ZF=0 3-14 (1)MOV AX,0 XOR AX,AX SUB AX, AX(2)MOV CL,4 ROR BL,CL (3) MOV AX,N1 MOV BX,N1CWD ;对被除数进行符号扩展IDIV BXMOV M1,AX ;商放在AX中MOV M2,DX ;余数放在DX中 (4) AND BX,0F7AFH 或 OR 0850H (
16、5) XOR AX 4020H (6) TEST DX,0201H (7) OR CX,13-15 (1)LEA BX,BLOCK MOV BX, BX+10 MOV AX, BX (2)LEA BX ,BLOCK MOV AX,BX+10 (3)LEA BX, BLOCK MOV SI,10 MOV AX, BX+SI (4) MOV AX, BLOCK+103-16 (1)60H输出到端口580H (2)8060H输出到580H 端口 (3)将4FH从端口40H读入到AL (4)从端口40H读一个16位的数到AX (5)将60H输出到端口45H (6)将8060H输出到端口45H 3-17
17、NUM1 DW 4148H,2816H NUM2 DW 2258H,8452H(1) MOV AX,NUM2 ADD NUM1,AX MOV AX,NUM2+2 ADD NUM1+2,AX(2) RES DB 2DUP(?) MOV AL,BYTE PTR NUM1 ADD AL,BYTE PTR NUM1+1 ADD AL,BYTE PTR NUM1+2 ADD AL,BYTE PTR NUM1+3 MOV RES,AL(3) 假设存放的数据为无符号数 MOV SI,OFFSET NUM1 XOR AX,AX MOV CX,8 LP:ADD AL,SI ADC AH,0 INC SI LOO
18、P LP MOV RES,AL MOV RES+1,AH假设存放的数据为带符号数 MOV SI,OFFSET NUM1 XOR BX,BX MOV CX,8 LP:MOV AL,SI CBW ADD BX,AX INC SI LOOP LP MOV RES,AL MOV RES+1,AH(4) MOV AX,NUM1 ADD NUM2,AX MOV AX,NUM1+2 ADC NUM2+2,AX3-18(1) XOR AX, AX ;AX清零 LEA SI, NUM1 MOV CX, 8 LOP: ADD AL, SI DAA ADC AH, 0 ;AF清零 INC SI LOOP LOP M
19、OV RES, AL MOV RES+1, AH (2) MOV AL, NUM1SUB AL, NUM2DASMOV RES, AL 差90H; CF=13-21 (1)BX=9AH (2)BX=61H (3)BX=8071H(4)BX=10F7H (5)BX=0FF1CH3-22(1)DX=0006H BX=0004H(2)SP=1FFFEH SP=0FFFEH(3)CX=0004H BX=0004H(4)AX=8094H CF=0(5)MOV AL, SI(6)AL=0CCH CF=0 AL=32H(7)SI=0009H(8)DI=0009H(9)DI=94H(10) AX=17C6H
20、DX=8094H(11) AH=84H, BL=04H(12)IP=17C6H3-23(1)将自FIRST开始的存储区中的连续10个字节传送到从SECOND开始的存储区中。(2)将自0404H开始的存储区中连续256个字节全部赋0值。3-26 MOV BX,0A80H MOV AL,5 XLAT3-27(1)IP=1256H (2)IP=3280H (3)IP=2450H3-28CS=2000H; IP=009AH; SP=0F178H; SP=8FHSP+1=3DH; SP+2=50H; SP+3=40H; 3-29 MOV BL,AL CMP AL,01H JZ LAB1 CMP AL,0
21、2H JZ LAB2 CMP AL,04H JZ LAB3 AND BL,07H JNZ OK OK: LAB1: LAB2: LAB3: 3-31 MOV AX,0032H CMP AX,X JL N_HIGH MOV BX,X SUB BX,Y JO OVERFLOW JNS NEXT NEG BXNEXT: MOV RESULT,BXN_HIGH: OVERFLOW: 第四章 汇编语言程序设计(P195)4-2 内存分配和预置数据 VAR1 DB 12,-12H,3 DUP(0,0FFH) VAR2 DB 100 DUP(0,2 DUP(1,2),0,3) VAR3 DB WELCOME
22、 TO VAR4 DW VAR3+6 ;取其偏移量给VAR4 VAR5 DD VAR3 ;取其偏移量和段基址给VAR54-3(1)DATA1 DB 86H,27H,23H,00H,24H,1AH(2)DATA2 DW 0B430H,1062H(3)DATA3 DB 4DUP(20H),20,0,6DUP(1,2)4-4 (1)2 (2)2 (3)1 (4)104-5(1)VAR1的偏移量是0030H;VAR2的偏移量是003AH(2)CNT=0010H(3)VAR2+2单元的内容是02H4-10DATA SEGMENTX DB 4 DUP(?)Y DB 4 DUP(?)Z DB 4 DUP(?
23、),0 ;定义X,Y,Z为字节变量DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,WORD PTR X0 ADD AX,WORD PTR Y0 ;X,Y低16位相加 MOV WORD PTR Z0,AX ;结果存入Z的低16位 MOV AX,WORD PTR X2 ADC AX,WORD PTR Y2 ;X,Y高16位相加 MOV WORD PTR Z2,AX ;结果存入Z的高16位 JNC OK MOV AL,1 MOV Z+4,AL ;保存进位OK: MOV AH,4CH INT
24、 21HCODE ENDS END START4-11DATA SEGMENTX DB 4 DUP(?)Y DB 4 DUP(?)Z DB 4 DUP(?) ;定义X,Y,Z为字节变量DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DL,0 MOV AX,WORD PTR X SUB AX,WORD PTR Y ;X,Y低16位相减 MOV WORD PTR Z,AX ;结果存入Z的低16位 MOV AX,WORD PTR X2 SBB AX,WORD PTR Y2 ;X,Y高16位相加
25、MOV WORD PTR Z2,AX ;结果存入Z的高16位 JNO OK MOV DL,-1 ;溢出OK: MOV AH,4CH INT 21HCODE ENDS END START4-12(1)DATA SEGMENT DB 100 DUP(?)MESG DB ERROR INPUT!$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV AH,01H INT 21H ;从键盘输入一个字符,该字符ASCII码送入AL CMP
26、AL,41H JB ERROR CMP AL,4AH JA ERROR CMP AL,41H JE P0 ;判断输入字符是为A,则跳转到P0 . CMP AL,4AH JE P9 ;判断输入字符是为J,则跳转到P9P0: . RET .P9: . RETERROR: MOV DX,OFFSET MESG MOV AH,09H INT 21H ;输入字符非AJ则输出错误信息 RETSTART ENDPCODE ENDS END START(2)DATA SEGMENTBASE DW P0,P1,P2,P3,P4,P5,P6,P7,P8,P9MESG DB ERROR INPUT!$DATA EN
27、DSSTACK SEGMENT PARA STACK STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV BX,0 ;BX为跳转表BASE内寻址编号,清零 MOV AH,01H INT 21H ;从键盘输入字符命令 CMP AL,41H JB ERROR CMP AL,4AH JA ERROR ;输入字符非AJ则跳转到ERROR MOV BL,AL SUB BL,41H ;得编号 SHL
28、BX,1 ;表内偏移量=编号*2 JMP BASEBX;查跳转表跳转到相应的子程序ERROR: MOV DX,OFFSET MESG MOV AH,09H INT 21H ;输出错误信息 RETP0: . RET .P9: . RETSTART ENDPCODE ENDS END START4-13 CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV GOOD,0 MOV PASS,0 MOV BAD,0 XOR BX,BX ;bx存放全年级统计总成绩 XOR SI,SI MOV CX,100LP: MOV A
29、H,BUFSICMP AH,85H JA GS CMP AH,60H JAE PS MOV AL,BAD ADD AL,1 DAA MOV BAD,AL JMP AGAINGS: MOV AL,GOOD ADD AL,1 DAA MOV GOOD,AL JMP AGAINPS: MOV AL,PASS ADD AL,1 DAA MOV PASS,ALAGAIN: MOV AL,BL ADD AL,AH DAA MOV BL,ALMOV AL,BH ADC AL,0 DAA MOV BH,ALINC SILOOP LP MOV AVRG,BH MOV AH,4CH INT 21HCODE ENDS END START4-15DATA SEGMEN
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1