微机原理答案

第一章
1.选择题
(1)C (2) D A (3) C
3填空
(1) CPU,微型计算机,系统软件,外围设备,微型计算机系统
(2) 10,3,12
(3) 阶数
(4) 10010010B,01000100B,11010110B,FF4EH
(5) 3F7H,1C3H,243H,277H,
4简答题
(1) 微处理器,微型计算机和微型计算机系统三者有何联系与区别?
微处理器是把原来的中央处理单元CPU的复杂电路(包括运算器和控制器)做在一片或几片大规模集成电路的芯片上。把这种微缩的CPU大规模集成电路称为微处理器。
微型计算机是以微处理器为核心,再配备上用大规模集成电路工艺制成的存储器和 I/O接口就构成了微型计算机。
以微计算机为核心,再配备上系统软件、I/O设备、辅助电路和电源就构成了微机系统。微型计算机系统包括硬件和软件了两大部分。
(2) 试述在计算机中常采用二进制的缘由?
(3) 简述如何从补码判断真值的符号?
(4) BCD码与纯二进制数有何区别?
主要区别是二者对应的二进制位所表示的二进制真值不同,
(5) 试述机器数的定点和浮点数表示形式。
第2章
2填空题
(1) 递增,A7,A5,A3,A1.
(2) 地址总线的宽度,00000H~0FFFFFH
(3) 寄存器,运算器,控制器;运算和控制
(4) SS,SP
(5) MN/MX
(6) 主频,总线宽度
(7) 20,16
3简答题
(1) 什么是指令周期?什么是总线周期?一个总线周期至少包括几个时钟周期?
指令周期是一条指令执行所需的时钟周期,cpu在执行指令过程中,凡需执行访问存储器或访问I/O端口的操作都统一交给BIU的外部总线完成,进行一次访问所需的时间称为一个总线周期。一般一个基本的总线周期由4个时钟周期组成。
(2) 8086CPU在最小模式下构成计算机系统至少应该包括哪几个基本的部分?
(3) 8086CPU中,标志寄存器包含哪些标志位?各标志位为‘0’,‘1’分别表示什么含义?
(4) 8086CPU中有哪些通用寄存器和专用寄存器?说明他们的作用。
(5) 在8086CPU中,已知CS寄存器和IP寄存器的内容分别如下所示,请确定其物理地址.
1) CS=1000H ,IP=2000H 物理地址: CS*16+IP=10000H+2000H=12000H
2) CS=1234H ,IP=0C00H物理地址: CS*16+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 1110
CF=0,SF=1,ZF=0,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。
微机原理习题答案(第三章和第四章)
默认分类 2008-11-17 18:47 阅读37 评论0
字号: 大 中 小
第三章
P134
1.选择题
(1)D (2)C (3)A (4)A
2.填空题
(1)递增
(2)60H 0
(3)1F02CH
4.请指出下列指令中源操作数和目的操作数的寻址方式。
(1)源操作数为立即寻址,目的操作数为寄存器寻址
(2)源操作数为立即寻址,目的操作数为寄存器间接寻址
(3)源操作数为寄存器间接寻址,目的操作数为寄存器寻址
(4)源操作数为寄存器寻址,目的操作数为寄存器寻址
(5)单一操作数(源操作数)为寄存器寻址
(6)单一操作数(目的操作数)为寄存器寻址
(7)源操作数为相对基址变址寻址,目的操作数为寄存器寻址
(8)源操作数为寄存器间接寻址,目的操作数为寄存器寻址
(9)源操作数为立即寻址和寄存器寻址,目的操作数寄存器寻址
(10)单一操作数为段间直接寻址(相对变址寻址)
5.请写出如下程序片段中每条逻辑运算指令执行后标志ZF、SF、和PF的状态:
MOV AL, 0AH ; 各标志位保持不变
AND AL, 0FH ; ZF=0 SF= 0 PF=1
OR AL, 04BH ; ZF=0 SF= 0 PF=1
XOR AL, 0AH ; ZF=1 SF= 0 PF=1
6.请写出如下程序片段中每条算术运算指令执行后标志CF、ZF、SF、OF、PF和AF的状态:
MOV AL, 54H ; 各标志位保持不变
ADD AL, 4FH ; CF=0 ZF=0 SF= 1 OF=1 AF=1 PF=1
CMP AL, 0C1H ; CF=1 ZF=0 SF=1 OF=0 AF=0 PF=1
SUB AL, AL ; CF=0 ZF=1 SF= 0 OF=0 AF=0 PF=1
INC AL ; CF=0 ZF=0 SF=0 OF=0 AF=0 PF=0
7.(DS)=3000H,(SS)=1500H,(SI)=010CH,(BX)=0870H,(BP)=0500H,指出下列指令的目的操作数字段寻址方式,并计算目的操作数字段的物理地址。
(1) MOV [BX], CX
目的操作数为寄存器间接寻址
目的操作数的物理地址为:DS×16+0870H=30870H
(2) MOV [1000H], BX
目的操作数为直接寻址
目的操作数的物理地址为:DS×16+1000H=31000H
(3) MOV [BP], BX
目的操作数为寄存器间接寻址
目的操作数的物理地址为:SS×16+0500H=15500H
(4) MOV [BP+100], CX
目的操作数为寄存器相对寻址
目的操作数的物理地址为:SS×16+0500H+64H=15564H
(5) MOV [BX+100][SI], CX
目的操作数为相对基址加变址寻址
目的操作数的物理地址为:
DS×16+0870H+64H+010CH=309E0H
8.指出如下指令哪些是错误的,并说

明原因:
(1)MOV [SP], BX
错。SP不能间址寻址(P88)
(2)MOV CS, BX
错。CS寄存器不能赋值,要由装入程序确定
(3)POP CS
错。CS寄存器不能赋值,要由装入程序确定
(4)JMP BX
对。
(5)SUB [BP+DI-1000],AL
错。偏移量不能为负。但编译能通过。
(6)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)=1002H
PUSH BX ;(SS)=2800H,(SP)=000CH,(AX)=0FA0H,(BX)=1002H
POP AX ;(SS)=2800H,(SP)=000EH,(AX)=1002H,(BX)=1002H
POP BX ;(SS)=2800H,(SP)=0010H,(AX)= 1002H,(BX)= 0FA0H
10.阅读下列各小题的指令序列,在后面空格中填入该指令序列的执行结果。
(1)MOV BL,26H
MOV AL,95H
ADD AL,BL
DAA
AL= 21H BL= 26H CF=1
(2)MOV AX,1E54H
STC
MOV DX,95
XOR DH,0FFH
SBB AX,DX
AX= 1EF5H CF=1
11.已知程序段如下:
CMP AX,BX
JNC K1
JNO K2
JMP K3
假设有以下三组AX、BX值,那么在程序执行后,分别转向哪里?
(1)(AX)=0E301H,(BX)=8F50H
转向K1
(2)(AX)=8F50H,(BX)=0E301H
转向K2
(1)(AX)=147BH,(BX)=80DCH
转向K3
第四章
P183
1.选择题
(1)C B (2)B (3)B (4)D
3.
(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!’
图如下:
DATA1 34 DATA2 56 DATA3 C DATA4 H(48H)
12 00 … 6个 E
67 BC C L
05 00 3
L
AB 79 3 2个 O
89 00 1
14
W
00 20个 O
R
L
D
!
4.
DATA1 DB 00H,0AH,10H
DATA2 DB 15 DUP(04H,3DUP(08H),09H)
DATA3 DW 6577H,636CH,6D6FH
5.
STR G O O D M O R N I N G ! $
ADR 03 00 00 00 02 00 05 00
DISP 03 00
LEA BX,TABLE
MOV BX,OFFSET TABLE
8.
(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


调用无效。相对基址加变址寻址方式形成的值在汇编时是不知道的。



11.
CMPN MACRO X,Y,SUM
PUSH AX
PUSH DX
MOV AL,X
CMP AL,Y
JNC K1
MOV DL,5
MUL DL
ADD AX,Y
LJMP K2
K1: MOV AL,Y
MOV DL,5
MUL DL
ADD AX,X
K2: MOV SUM,AX
POP AX
ENDM



12.
DSEG SEGMENT
CHAR DB 61 DUP(?)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START PROC FAR
MOV AX,DSEG
MOV DS,AX
MOV DX,OFFSET CHAR
MOV AH,0AH
INT 21H
MOV DX,OFFSET CHAR
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
START ENDP
CSEG ENDS
END START
微机原理第五章部分习题答案
默认分类 2008-11-22 16:12 阅读67 评论4
字号: 大 中 小
4、试编写一汇编程序,要求实现将ASCII码表示的两位十进制数转换为一字节二进制数。
DATA SEGMENT
ASC DB 36H,35H
ASCEND DB ?
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
DECIBIN PROC FAR
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET 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 DECIBIN
5.某存储区中存有20个单字节数,试编写一汇编语言分别求出其绝对值并放回原处。
DSEG SEGMENT
MUM DB 1,2,3,-9,0,7,5,-4,-7,-11,34,-67,-44,-51,1,3,6,8,9,3
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV CX,20

MOV SI,OFFSET MUM
LP1: MOV AL,[SI]
AND AL,AL
JNS DONE
NEG AL
DONE: MOV [SI],AL
INC SI
LOOP LP1
MOV AH,4CH
INT 21H
START ENDP
CSEG ENDS
END START
6、试编写一汇编程序,将AX中的各位取反,然后统计出AX中“0”的个数,将结果保存到CL中。
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE
START:
MOV AX,0E001H
MOV DL,0
MOV CL,16
NOT AX
RETEST: AND AX,AX
JS SKIP
INC DL
SKIP: SHL AX,1
LOOP RETEST
MOV CL,DL
EXIT: MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END START
12 已知a1~a20依次存放在以BUF为首址的数据区,每个数据占两个字节,SUM也是两个字节。试编程计算SUM=a1+a2+a3+...+a20
DATA 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 ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV SUM,AX
MOV SI,OFFSET DAT
MOV CX,20
LP1: ADD AX,[SI]
INC SI
INC SI
LOOP LP1
MOV SUM,AX
MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END START
14 编一字程序,计算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 ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV SI, OFFSET QQQ
MOV BL,TTT
MOV BH,0
MOV

AX,BX
MUL BX
MOV [SI],AX ;存t2
MUL BX
MOV [SI+2],AX ; 存t3
MOV AL,AA1
MOV AH,0
MUL WORD PTR[SI+2]
MOV RESULT,AX
MOV AL,BBB
MOV AH,0
MUL WORD PTR[SI]
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 21H
MAIN ENDP
CODE ENDS
END START
15 求出前20个Fibonacci数,存入数据变量FN开始的区域中。
Fibonacc数的定义为:f0=0,f1=1,fn+2=fn+fn+1
DATA SEGMENT
F1 DW 0
F2 DW 1
FN DW 20 DUP(?)
RESULT DW ?
DATA ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START:
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],BX
LL: ADD AX,BX
ADD SI,2
MOV [SI],AX
MOV BX,[SI-2]
LOOP LL
MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END START



相关文档
最新文档