华电(保定)微原作业参考解答

  • 格式: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