华电(保定)微原作业参考解答
- 格式:doc
- 大小:269.00 KB
- 文档页数:26
1 第一章 习 题
1.2 请简述机器数和真值的概念。
1.3 将下列十进制数分别转化为二进制数、八进制数、十六进制数和压缩BCD数。
(1)125.74 (=7D.BCH) (2)513.85 (3)742.24 (4)69.357
1.4 将下列二进制数分别转化为十进制数、八进制数和十六进制数。
(1)101011.101B (=43.625) (2)110110.1101B
(3)1001.11001B (4)100111.0101B
1.5 将下列十六进制数分别转化为二进制数、八进制数、十进制数和压缩BCD数。
(1)5A.26H (2)143.B5H
(3)6CB.24H (4)E2F3.2CH
1.6 8位和16位二进制数的原码、补码和反码可表示的数的范围分别是多少?
1.7 写出下列十进制数的原码、反码、补码表示(采用八位二进制,最高位为符号位)。
(1)120 (78H) (2)62 (3)-26 (E6H补码) (4)-127
1.8 已知补码求出其真值。
(1)46H(=70) (2)9EH (=-98) (3)B6H ( =-74) (4)6C20H
本章作业点评
注意正数的原码、反吗和补码相同,而负数不同。
作业解答请看书 2 第2章 微处理器习 题
2.1 8086/8088 CPU由哪两部分组成?它们的主要功能各是什么?
总线接口单元和指令执行单元
2.2 8086/8088 CPU为什么要采用地址/数据线分时复用?有何好处?
受到微处理器外部引脚数量大限制
2.3 8086/8088 CPU中的标志寄存器分为哪两类标志?二者有何区别?
6个状态标志位和3个控制标志位
2.4 设段寄存器CS=2400H,指令寄存器IP=6F30H,此时指令的物理地址PA是多少?指向这一物理地址的CS值和IP值是否是唯一的?
答:PA=2AF30H,不唯一。
2.5 什么叫总线周期?8086/8088系统中的总线周期由几个时钟周期组成?如果CPU的主时钟频率为25MHz,一个时钟周期是多少?一个基本总线周期是多少时间?
答:4个T周期,1个T周期为1/25MHZ=4*10-8S
2.10 什么是指令周期?什么是时钟周期?什么是总线周期?三者有何关系?
2.15 什么是总线?简述微机总线的分类。
2.16 简述PCI总线的特点。
2.17 简述USB总线的特点。
本章作业点评
作业解答请看书 3 习 题
3.1 请解释名词:操作码、操作数、立即数、寄存器操作数、存储器操作数。
3.2 什么叫寻址方式?8086指令系统有哪几种寻址方式?
3.3 指出下列指令中源操作数的寻址方式
点评:根据指令格式,仅给出源操作数的寻址方式
(1) MOV SI,200
(2) MOV AL,[2000H]
(3) MOV CX,DATA[SI]
(4) ADD AX,[BX+DI]
(5) AND AX,BX
(6) MOV [SI],AX
(7) MOV AX,DATA[BP+SI]
(8) PUSHF
(9) MOV AX,ES:[BX]
(10) JMP FAR PTR PROCS_1(答:直接寻址)
3.4 设DS=1000H,ES=2000H,BX=2865H,SI=0120H,偏移量D=47A8H,试问下列各指令中源操作数所在位置,若有物理地址请计算出其物理地址值。
点评:题目要求给出物理地址,仅(3)(4)(5)(7)(8)(10)计算物理地址
(1)MOV AL,D (代码段中)
(2)MOV AX,BX (cpu寄存器中)
(3)MOV AL,[BX+D]内存数据段
(4)MOV AL,[BX+SI+D] 内存数据段
(5)MOV BX,[BX+SI+2]内存数据段
(6)MOV [BX+5],AX(cpu寄存器中)
(7)INC BYTE PTR[SI+3]内存数据段
(8)MOV DL,ES:[BX+SI]内存附加数据段
(9)MOV AX,2010H (代码段中)
(10)MOV AX,DS:[2010H]内存数据段
3.5 现有DS=2000H,BX=0100H,SI=0002H,20100H=12H,20101H=34H,20102H=56H,20103H=78H,21200H=2AH,21201H=4CH,21202H=B7H,21203H=65H,试说明下列指令执行后,AX寄存器中的内容。 4 (1) MOV AX,1200H (AX=1200H)
(2) MOV AX,BX (AX=0100H)
(3) MOV AX,[1200H] (AX=4C2AH)
(4) MOV AX,[BX] (AX=3412H)
(5) MOV AX,1100H[BX] (AX=4C2AH)
(6) MOV AX,[BX+SI] (AX=7856H)
(7) MOV AX,[1100H+BX+SI] (AX=65B7H)
3.9 假设下列程序执行前SS=8000H,SP=2000H,AX=7A6CH,DX=3158H。执行下列程序段,画出每条指令执行后,寄存器AX,BX,CX,DX的内容和堆栈存储的内容的变化情况,执行完毕后,SP=?
PUSH AX (答: AX不变)
PUSH DX (答: DX不变)
POP BX (答: BX=DX)
POP CX (答: CX=AX)
3.10 编程序段分别完成如下功能:
(1) AX寄存器低4位清零。(答:AND AX,FFF0H)
(2) BX寄存器低4位置“1”。 (答:OR BX,000FH)
(3) CX寄存器低4位变反。 (答:XOR CX,000FH)
(4) 测试DL寄存器位3,位6是否同时为0,若是,将0送DL;否则1送DH。
(答:TEST DL,48H
JZ NEXT
MOV DH,01H
JMP DONE
NEXT:MOV DL,00H)
3.11 写出三种不同类型的指令将寄存器BX清零。
答:
MOV BX,0
XOR BX,BX
SUB BX,BX
3.12 已知从DS:2200H,ES:3200H单元起分别存放20个ASCII的字符。找出这两个字符串中第一个不同字符的位置(段内偏地址),并放入DS:22A0H开始的连续两个单元中。请设计完成此任务的程序段。
(1)使用通常用的比较指令(CMP)实现;
(2)使用数据串比较指令(CMPSB)实现。
答(1) 5 MOV SI,2200H ;
MOV DI,3200H ;
MOV CX,20 ;
NEXT: MOV AL,[SI]
CMP AL,ES:[DI] ;
JNZ STOP
INC SI
INC DI ;
DEC CX ;
JNZ NEXT
JMP DONE ;
STOP: MOV [22A0H],SI ;
DONE: HLT
答(2)
MOV SI,2200H ;
MOV DI,3200H ;
MOV CX,20 ;
NEXT: REPZ CMPSB ;
JCXZ DONE ;如果CX=0,表示所有的字符都相同
DEC SI
STOP: MOV [22A0H],SI ;
DONE: HLT
3.13 读下面程序段,请问:在什么情况下,本段程序的执行结果是AH=0?
BEGIN: IN AL,5FH
TEST AL,80H
JZ BRCH1
MOV AH,0
JMP STOP
BRCH1: MOV AH,0FFH 6 STOP: HLT
答 端口 地址5FH的内容为负数时,AH=0
3.16 阅读下列程序:
NEXT: MOV AL,[SI]
MOV ES:[DI],AL
INC SI
INC DI
LOOP NEXT
写出用串指令完成上述功能的程序段。
答:
REP MOVSB
3.18 假设寄存器AX=1234H,DX=0A000H,阅读下列程序段:
MOV BX,0
MOV CX,BX
SUB CX,AX
SBB BX,DX
MOV AX,CX
MOV DX,BX
上述程序执行后AX=?,DX=?,程序功能是什么?
答:AX = EDCCH
DX =5FFFH
功能:0 - A0001234H
3.19 比较AX,BX,CX中带符号数的大小,将最大的数放在AX中,请编程。
CMP AX,BX
JG NEXT
MOV AX,BX
NEXT: CMP AX,CX
JG NEXT
MOV AX,CX