1、(word完整版)微型计算机原理与接口技术第二版答案张荣标 微型计算机原理与接口技术第二版答案 张荣标 机械工业出版社第一章1。5 练习题1选择题(1)B C A (2) A (3) D A (4) C2填空(1) 10, 12(2) 阶数(3) 10011100B,01000100B,1110000B,01000000(4) 3F7H,1C3H,243H,277H, 3简答题(1)微处理器,微型计算机和微型计算机系统三者有何联系与区别?微处理器是把原来的中央处理单元CPU的复杂电路(包括运算器和控制器)做在一片或几片大规模集成电路的芯片上。把这种微缩的CPU大规模集成电路称为微处理器。微型计
2、算机是以微处理器为核心,再配备上用大规模集成电路工艺制成的存储器和 I/O接口就构成了微型计算机。以微计算机为核心,再配备上系统软件、I/O设备、辅助电路和电源就构成了微机系统。微型计算机系统包括硬件和软件了两大部分。(2)计算机中为什么采用二进制数表示?(3)简述程序的运行过程。第2章2。10 练习题1. 选择题1. B 2.D 3。C 4。B 5.C 6.C 7。B 8.A 9。A2填空题(1) 地址总线的宽度,00000H0FFFFFH(2) 寄存器,运算器,控制器;运算和控制(3) SS,DS,CS,ES(4) MN/MX(5) SS,DS(7) 奇区,偶区,高8位,低8位3简答题(1
3、) 什么是指令周期?什么是总线周期?一个总线周期至少包括几个时钟周期?指令周期是一条指令执行所需的时钟周期,cpu在执行指令过程中,凡需执行访问存储器或访问I/O端口的操作都统一交给BIU的外部总线完成,进行一次访问所需的时间称为一个总线周期。一般一个基本的总线周期由4个时钟周期组成。(2) 8086CPU在最小模式下构成计算机系统至少应该包括哪几个基本的部分?(3) 8086CPU中,标志寄存器包含哪些标志位?各标志位为0,1分别表示什么含义?(4) 8086CPU中有哪些通用寄存器和专用寄存器?说明他们的作用.(5) 在8086CPU中,已知CS寄存器和IP寄存器的内容分别如下所示,请确定
4、其物理地址。1) CS=1000H ,IP=2000H 物理地址: CS*16+IP=10000H+2000H=12000H2) CS=1234H ,IP=0C00H物理地址: CS16+IP=12340H+0C00H=12F40H(6)设(AX)=2345H,(DX)=5219H,请指出两个数据相加或相减后,FLAG中状态标志位的状态.相加 :CF=0,SF=0,ZF=0,AF=0,OF=0,PF=0相减: 0010 0011 0100 0101 1101001000011001 补 1010 1101 1110 0111 1101 0001 0010 1110CF=0,SF=1,ZF=0,
5、AF=0,OF=0,PF=0(7)8086CPU工作在最小模式下:访问存储器要利用:M/IO、ALE、BHE、RD、WR、DT/R、DEN、READY和数据、地址总线.访问I/O要利用:M/IO、ALE、BHE、RD、WR、DT/R、DEN、READY和数据、地址总线。当HOLD有效并得到响应时,CPU置高阻的信号有:数据/地址总线、数据状态总线及M/IO、BHE、RD、WR、DT/R、DEN、INTA.第三章3.7练习题P1201选择题 (1)D (2)C (3)A (4)A2填空题 (1)递增 1A,3B,5C,8D (2)60H 0 (3)1F02CH4请指出下列指令中源操作数和目的操作
6、数的寻址方式。 (1)源操作数为立即寻址,目的操作数为寄存器寻址 (2)源操作数为立即寻址,目的操作数为寄存器间接寻址 (3)源操作数为寄存器间接寻址,目的操作数为寄存器寻址 (4)源操作数为寄存器寻址,目的操作数为寄存器寻址 (5)单一操作数(源操作数)为寄存器寻址 (6)单一操作数(目的操作数)为寄存器寻址 (7)源操作数为相对基址变址寻址,目的操作数为寄存器寻址 (8)源操作数为寄存器间接寻址,目的操作数为寄存器寻址 (9)源操作数为立即寻址和寄存器寻址,目的操作数寄存器寻址 (10)单一操作数为段间直接寻址(相对变址寻址)5请写出如下程序片段中每条逻辑运算指令执行后标志ZF、SF、和P
7、F的状态:MOV AL, 0AH ; 各标志位保持不变AND AL, 0FH ; ZF=0 SF= 0 PF=1OR AL, 04BH ; ZF=0 SF= 0 PF=1XOR AL, AL ; ZF=1 SF= 0 PF=16请写出如下程序片段中每条算术运算指令执行后标志CF、ZF、SF、OF、PF和AF的状态:MOV AL, 54H ; 各标志位保持不变ADD AL, 4FH ; CF=0 ZF=0 SF= 1 OF=1 AF=1 PF=1CMP AL, 0C1H ; CF=1 ZF=0 SF=1 OF=0 AF=0 PF=1SUB AL, AL ; CF=0 ZF=1 SF= 0 OF=
8、0 AF=0 PF=1INC AL ; CF=0 ZF=0 SF= OF=0 AF=0 PF=07。(DS)=3000H,(SS)=1500H,(SI)=010CH,(BX)=0870H,(BP)=0500H,指出下列指令的目的操作数字段寻址方式,并计算目的操作数字段的物理地址。(1) MOV BX, CX 目的操作数为寄存器间接寻址目的操作数的物理地址为:DS16+0870H=30870H (2) MOV 1000H, BX 目的操作数为直接寻址目的操作数的物理地址为:DS16+1000H=31000H(3) MOV BP, BX 目的操作数为寄存器间接寻址目的操作数的物理地址为:SS16+
9、0500H=15500H(4) MOV BP+100, CX 目的操作数为寄存器相对寻址目的操作数的物理地址为:SS16+0500H+64H=15564H(5) MOV BX+100SI, CX 目的操作数为相对基址加变址寻址目的操作数的物理地址为:DS16+0870H+64H+010CH=309E0H8指出如下指令哪些是错误的,并说明原因:(1)MOV SP, BX错. (2)MOV CS, BX错。CS寄存器不能赋值,要由装入程序确定(3)POP CS错。CS寄存器不能赋值,要由装入程序确定(4)JMP BX对。(5)SUB BP+DI-1000,AL错。偏移量不能为负。但编译能通过。(6
10、)SHL AX,CX错.源操作数最大为255,只能是CL,不能是CX(7)XCHG ES:BX,AL对。(8)LEA AX,BX+DI对。9已知(SS)=2800H,(SP)=0010H,(AX)=0FA0H,(BX)=1002H,下列指令连续执行,请指出每条指令执行后SS、SP、AX、BX寄存器中的内容是多少?PUSH AX ;(SS)=2800H,(SP)=000EH,(AX)=0FA0H,(BX)=1002HPUSH BX ;(SS)=2800H,(SP)=000CH,(AX)=0FA0H,(BX)=1002HPOP AX ;(SS)=2800H,(SP)=000EH,(AX)=1002
11、H,(BX)=1002HPOP BX ;(SS)=2800H,(SP)=0010H,(AX)= 1002H,(BX)= 0FA0H10。阅读下列各小题的指令序列,在后面空格中填入该指令序列的执行结果。(1)MOV BL,26H MOV AL,95H ADD AL,BLDAAAL= 21H BL= 26H CF=1(2)MOV AX,1E54H STC MOV DX,95 XOR DH,0FFHSBB AX,DX AX= 1EF5H CF=111.已知程序段如下: CMP AX,BX JNC K1 JNO K2 JMP K3假设有以下三组AX、BX值,那么在程序执行后,分别转向哪里?(1)(AX
12、)=0E301H,(BX)=8F50H转向K1(2)(AX)=8F50H,(BX)=0E301H转向K2(1)(AX)=147BH,(BX)=80DCH转向K3第四章4。9练习题P1601选择题 (1)C B (2)B (3)B (4)D3(1) DATA1 EQU THIS BYTE DA1 DW 1234H,567H,89ABH(2) DATA2 DW 56H,0BCH,79H,14H(3) DATA3 DB 6DUP(c),2DUP(3,3,1), 20DUP(?)(4) STRING DB HELLO WORLD!4. DATA1 DB 00H,0AH,10H DATA2 DB 15
13、DUP(04H,3DUP(08H),09H) DATA3 DW 6577H,636CH,6D6FH5.LEA BX,TABLEMOV BX,OFFSET TABLE8. (1)宏展开: + PUSH AX + MOV AX,AX + SUB AX,AX + CMP AX,0 + JGE NEXT(0014) + MOV BX,AX + POP AX (2)调用无效.语法错误(立即数的使用)。 (3) 宏展开: + PUSH AX + MOV AX,BX+SI + SUB AX, BX+SI+X + CMP AX,0 + JGE NEXT(0025) + MOV CX,AX + POP AX调用
14、无效。相对基址加变址寻址方式形成的值在汇编时是不知道的.11.CMPN MACRO X,Y,SUM PUSH AX PUSH DXMOV AL,X CMP AL,Y JNC K1 MOV DL,5 MUL DL ADD AX,Y JMP K2K1: MOV AL,Y MOV DL,5 MUL DL ADD AX,XK2: MOV SUM,AX POP AX ENDM12.DSEG SEGMENTCHAR DB 61 DUP(?)DSEG ENDSCSEG SEGMENT ASSUME CS:CSEG,DS:DSEGSTART PROC FAR MOV AX,DSEG MOV DS,AXMOV
15、DX,OFFSET CHARMOV AH,0AHINT 21HMOV DX,OFFSET CHARMOV AH,09HINT 21HMOV AH,4CHINT 21HSTART ENDP CSEG ENDS END START 第五章5。8练习题4、试编写一汇编程序,要求实现将ASCII码表示的两位十进制数转换为一字节二进制数。DATA SEGMENT ASC DB 36H,35H ASCEND DB ?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATADECIBIN PROC FAR MOV AX,DATA MOV DS,AX MOV BX,OFFSE
16、T ASC MOV AL,BX CMP AL,30H JL EXIT CMP AL,39H JG EXIT SUB AL,30H MOV DL,BX+1 CMP DL,30H JL EXIT CMP DL,39H JG EXIT SUB DL,30H MOV CL,10 MUL CL ADD AL,DL MOV ASCEND,AL EXIT: MOV AH,4CH INT 21H DECIBIN ENDP CODE ENDS END DECIBIN5.某存储区中存有20个单字节数,试编写一汇编语言分别求出其绝对值并放回原处。DSEG SEGMENT MUM DB 1,2,3,-9,0,7,5,
17、4,-7,11,34,67,44,51,1,3,6,8,9,3DSEG ENDSCSEG SEGMENT ASSUME CS:CSEG, DS:DSEGSTART PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DSEG MOV DS,AX MOV CX,20 MOV SI,OFFSET MUMLP1: MOV AL,SI AND AL,AL JNS DONE NEG ALDONE: MOV SI,AL INC SI LOOP LP1 MOV AH,4CH INT 21HSTART ENDPCSEG ENDS END START6、试编写一汇编程序,将AX中
18、的各位取反,然后统计出AX中“0”的个数,将结果保存到CL中。CODE SEGMENTMAIN PROC FAR ASSUME CS:CODESTART: MOV AX,0E001H MOV DL,0 MOV CL,16 NOT AXRETEST: AND AX,AX JS SKIP INC DLSKIP: SHL AX,1 LOOP RETEST MOV CL,DLEXIT: MOV AH,4CH INT 21HMAIN ENDPCODE ENDS END START12 已知a1a20依次存放在以BUF为首址的数据区,每个数据占两个字节,SUM也是两个字节。试编程计算SUM=a1+a2+a
19、3+.。+a20DATA SEGMENT DAT DW 0,1,8,27,64,-9,-5,6,77,5,55,88,99,33,55,1,3,5,6,87 SUM DW ?DATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,0 MOV SUM,AX MOV SI,OFFSET DAT MOV CX,20LP1: ADD AX,SI INC SI INC SI LOOP LP1 MOV SUM,AX MOV AH,4CH INT 21HMAIN ENDPCODE
20、 ENDS END START14 编一字程序,计算f(t)=at3+bt2+ct+d。设a,b,c,d,t均为一位十进制数,结果存入RESULT单元。DATA SEGMENT AA1 DB 8 BBB DB 5 CCC DB 5 DDD DB 5 TTT DB 2 QQQ DW 3 DUP(?) RESULT DW ?DATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV SI, OFFSET QQQ MOV BL,TTT MOV BH,0 MOV AX,BX MUL
21、BX MOV SI,AX ;存t2 MUL BX MOV SI+2,AX ; 存t3 MOV AL,AA1 MOV AH,0 MUL WORD PTRSI+2 MOV RESULT,AX MOV AL,BBB MOV AH,0 MUL WORD PTRSI ADD RESULT,AX MOV AL,CCC MUL TTT ADD RESULT,AX MOV AL,DDD MOV AH,0 ADD RESULT,AX MOV CX,RESULT MOV AH,4CH INT 21HMAIN ENDPCODE ENDS END START15 求出前20个Fibonacci数,存入数据变量FN开始
22、的区域中.Fibonacc数的定义为:f0=0,f1=1,fn+2=fn+fn+1DATA SEGMENT F1 DW 0 F2 DW 1 FN DW 20 DUP(?) RESULT DW ?DATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,18 MOV AX,F1 MOV BX,F2 MOV SI,OFFSET FN MOV SI,AX INC SI INC SI MOV SI,BXLL: ADD AX,BX ADD SI,2 MOV SI,AX MOV
23、BX,SI-2 LOOP LL MOV AH,4CHINT 21HMAIN ENDPCODE ENDS END START第6章 (p231)6.8练习题1. 填空题(1) 随机存取存储器,消失,只读存储器,不会改变和消失(2) 8,13,8(3) 0.1452. 简答题(3)9,4,14,7(4)8,1288第七章7.6练习题1.选择题(1)B(2)C D(3) B2,(1)0100:48B0 0100:48B3 4(2)8 57 (3)中断请求、中断判优、中断响应、中断服务、中断返回4,PORT0 EQU 40HPORT1 EQU 41H;设置I/O地址号为40H和41H MOV AL,1
24、3HMOV DX,PORT0OUT DX,AL ;设置ICW1命令字 边沿触发方式,单片无级联,需要设置ICW4 INC DX;DX增1,为设置下面的命令字做准备 MOV AL,08HOUT DX,AL;设置ICW2,中断类型号为从08H开始的8个 MOV AL,09HOUT DX,AL; 设置ICW4 一般EOI缓冲方式,全嵌套方式5,MOV DX,1207HIN AL,DXOR AL,0101 1000B(或者58H)OUT DX,AL7,(1)主片:08H0FH 从片:80H87H (2)译码器输入可任选6个地址信号,从片的INT输入可以任选主片除IR5的中断源,下面的程序中选的是IR2
25、 (3)主片初始化程序:MOV AX,00HMOV DS,AXMOV BX,0DH4MOV AX,1260HMOV DS:BX,AXMOV AX,4310HMOV DS:BX+2,AX MOV AL,11HOUT 30H,AL MOV AL, 08HOUT 31H, AL MOV AL,04HOUT 31H,ALMOV AL,1DHOUT 31H,AL 从片初始化程序:MOV AX,00HMOV DS,AXMOV BX,85H4MOV AX,2340HMOV DS:BX,AXMOV AX,4310HMOV DS:BX+2,AX MOV AL,11HOUT 36H, ALMOV AL, 80HOUT 37H ,ALM