微机原理、汇编语言与接口技术(韩晓茹)课后答案

习 题 1

1.1 冯·诺依曼型计算机有哪五大组成部件构成?
答:由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成计算机硬件系统。

1.2 什么是微处理器、微型计算机和微型计算机系统?它们各由什么组成?
答:中央处理器CPU(Central Processing Unit)也称为微处理器,是微型计算机的核心,由运算器、控制器、寄存器以及相关的电路。
微型计算机由中央处理器、存储器、输入/输出接口和系统总线组成。
微型计算机系统由微型计算机硬件系统和软件系统两部分组成。也就是在微型计算机的外面加上电源和外部设备,然后配上系统软件和应用软件构成的系统。
1.3 什么是系统总线?按照信号的种类不同可以把系统总线分成哪三类 ?它们各有什么特点?
答:连接微处理器与存储器、输入输出接口,用以构成完整的微型计算机的总线称为系统总线。系统总线分为数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。
数据总线DB用于传送数据信息,数据总线是双向三态形式。
地址总线AB是专门用来传送地址的,地址总线总是单向三态的。
控制总线CB用来传送控制信号和时序信号,制总线的传送方向由具体控制信号而定。
1.4 衡量微型计算机系统的性能的指标有哪些?
答:衡量微型计算机系统的性能的指标有字长、主频、运算速度和主存容量和存取速度。字长是指微机系统中CPU一次能处理的二进制位数。CPU的主频,即CPU内核工作的时钟频率(CPU Clock Speed)。运算速度是指每秒钟所能执行的指令条数。主存储器容量指内部存储器能存放数据的最大字节数。存取速度指主存完成一次读/写所需要的时间。
1.5 将十进制数(123.025)10和(96.12)10转换成二进制数和十六进制数。
答:(123.025)10=(11111011.00000110)2=(7B.06)16
1.6 将十六进制数(3E.7)16和(A4.B)16转换成十进制数。
答:(3E.7)16=(62.4375)10
(A4.B)16=(164.6875)10
1.7 求8位无符号数10110101B和01011101B对应的十进制数?
答:10110101B对应的十进制数是181。
01011101B对应的十进制数是93。
1.8 分别求78和-78的8位原码、补码和反码。
[78]原=0100 1110B [78]反=0100 1110B [78]补=0100 1110B
[-78]原=1100 1110B [-78]反=1011 0001B [-78]补=1011 0010B
1.9 设[X]补=11001010B,[Y]补=01001010B,求它们的真值。
答:X的真值是-54,Y的真值是74。
1.10 设X=+37,Y=-15,求[X-Y] 补。
答:[X]补=[+37]补=[+100101B]补=00100101B。
[-Y]补=[[Y]补]求补=[[-0001111B]补]求补=[11110001B]求补=00001111B。
[X-Y]补=[X]补+[-Y]补=00100101B+00001111B=0011 0100B

习 题 2

2.1 8086/8088 CPU分为哪两大功能部件?其各自的主要功能是什么?8086/8088 CPU中有哪些寄存器?各有什么用途?
解:从功能上来看,Intel 8086/8088微处理器可分为两部分,即执行单元EU(Execution Unit) 和总线接口单元BIU(Bus Interface Unit)。
执行单元EU 的功能是负责指令的译码、执行,包括算术、逻辑运算,控制等。总线接口单元BIU 的功能是负责8086/8088对存储器和I/O 设备的所有访问操作。具体包括:负责从内存单元中预取指令,并将其送到指令队列缓冲器暂存;从内存单元或外设端口中读取操作数或者将指令的执行结果传送到指定的内存单元或外设端口;根据有效地址(EA)形成物理地址(PA)。
8086/8088有4个16位数据寄存器:AX、BX,CX,DX,它们既可作为16位寄存器使用,存放数据或地址,也可以分别作为两个 8 位寄存器使用。
8086/8088有2个16位变址寄存器:SI 、DI,通常与DS联用,为访问当前数据段提供段内偏移地址或偏移地址分量。
8086/8088有2个16位地址指针寄存器:SP,BP,它们一般是用来存放堆栈操作数的偏移地址。
总线接口单元(BIU) 中设置有4 个16位的段寄存器,分别是代码段寄存器(CS),数据段寄存器(DS),堆栈段寄存器(SS)和附加段寄存器(ES)。
指令指针寄存器 (Instruction Pointer,IP) 用来存放下一条要执行的指令在当前代码段中的偏移地址。
标志寄存器也称程序状态字(PSW) 寄存器,用来存放运算结果的特征和机器工作状态。

2.2 8086/8088 CPU中标志寄存器有哪两类标志?简述各标志位的含义。
解:①(Zero Flag ,ZF)——零标志。若本次运算结果为0,则ZF=1,否则ZF=0。
②(Sign F1ag SF)——符号标志。此标志用于反映有符号数运算结果的符号是正还是负。对于有符号数,用最高位表示数的符号,当本次运算结果最高位为1 ,表示结果为负数,则SF=1,否则SF=0。
③(Parity Flag,PF)——奇偶标志。此标志是反映运算结果中最低字节中含“1”的个数为0或偶数时,PF=1,为奇数时,PF=0。 注意,PF标志仅反映运算结果的最低8位中“1”的个数是偶数或奇数,即使是进行16位字操作也是如此。
④(Auxiliary Carry Flag ,AF)——辅助进位标志。当进行8 位数( 字节)或16位数( 字)的低8 位运算时,低4 位向高4 位( 即D3 位向D4 位) 有进位或借位时,AF=1,否则AF=0。AF标志主要供 BCD码十进制算术指令判别是否要进行十进制调整,用户一般不必关心。
⑤(Carry Flag,CF)——进位标志。当本次算术运算结果使最高位产生进位( 加法运算)或借位( 减法运算) 时,则此标志位置“1”,即CF=1;若加法运算结果最高位无进位,或减法运算结果最高位无借位,则CF=0。
⑥(Overflow Flag ,OF)——溢出标志。当运算结果产生溢出时,使OF=1,否则OF=0。

2.3 简述伪指令“EQU”与“=”之间有什么区别?
解:“EQU”伪指令不能重复定义,而“=”伪指令可以重复定义。

2.4 画图说明下列语句分配的存储空间及初始化的数值
(1)FF1 DB ‘0100’,2+5,?,‘ABC’
(2)FF2 DW 2 DUP(?),‘A’,‘BC’,1000H,25H
(3)FF3 DB 2 DUP(1,2 DUP(2,3),4)

偏移地址	内容	变量名
0000H	30H	FF1
0001H	31H	
0002H	30H	
0003H	30H	
0004H	07H	
0005H	00H	
0006H	41H	
0007H	42H	
0008H	43H	
0009H	00H	FF2
000AH	00H	
000BH	00H	
000CH	00H	
000DH	41H	
000EH	00H	
000FH	43H	
0010H	42H	
0011H	00H	
0012H	10H	
0013H	25H	
0014H	00H	
0015H	01H	FF3
0016H	02H	
0017H	03H	
0018H	02H	
0019H	03H	
001AH	04H	
001BH	01H	
001CH	02H	
001DH	03H	
001EH	02H	
001FH	03H	
0020H	04H	

2.5 指出下列指令的错误。

	A1	DB	 ?
	A2	DB	 10
	K1	EQU	 10241)MOV  K1,AX			(2)MOV  A1,AX
(3)CMP  A1,A2			(4)K1  EQU  20485)MOV  AX,BH			(6)MOV [BP][DI]7)XCHG CS,AX			(8)POP CS

解:
(1) 立即数不能为目的操作数
(2) 两个操作数的类型不一致
(3) 两个操作数不能同时为存储器操作数
(4) K1不能用EQU重复定义
(5) 两个操作数类型不匹配
(6) 两个操作数不能同时为存储器操作数
(7) CS不能作为XCHG的操作数
(8) CS不能为目的操作数

2.6 假设在数据段进行如下的定义:

  DATA		Segment
		XX	DB	-50,71,5,65,0
		YY 	DB	200 DUP('ABCD')
		ZZ 	DW 	100 DUP(?)
		WW 	DW 	25H,1052H,370H,851H
  DATA 		ENDS

(1)用一条指令将YY的偏移地址送入BX
(2)用一条伪指令给出该数据段占用所有字节长度
(3)用一条伪指令给出变量ZZ分配的字节数目
(4)编写一段程序将WW数组中的数据全部送入YY缓冲区
(5)将数组XX中的第二个数据与第五个数据进行调换

解:(1)LEA BX, YY
(2)在数据段的最后加上:LEN EQU $-XX
(3)ZZLEN  EQU  WW-ZZ
(4)MOV AX,WW
	 MOV YY,AX
	 MOV AX,WW+2
	 MOV YY+2,AX
MOV AX,WW+4
	 MOV YY+4,AX
MOV AX,WW+6
	 MOV YY+6,AX
 (5)MOV AL,XX+1
      MOV XX+4,AL

2.7 什么叫寻址方式?8086/8088指令系统有哪些寻址方式?
解:指令中操作数的寻找方法称为寻址方式。
8086/8088系统所支持的七种基本寻址方式:立即寻址, 寄存器寻址, 直接寻址, 寄存器间接寻址,寄存器相对寻址,基址变址寻址和相对基址变址寻址。

2.8 将首地址为BLOCK的字数组中的第100个数送入AX中,试写出相关指令序列,要求分别使用以下三种寻址方式:
(1)以BX寄存器的间接寻址
(2)以BX寄存器的相对寻址
(3)以BX、SI寄存器的基址变址寻址

解:(1)MOV BX, OFFSET BLOCK +99*2
		MOV AX, [BX]2)MOV BX, 99*2
		 MOV AX, BLOCK[BX]
		或:
		LEA BX, BLOCK
		MOV AX, [BX+99*2]3)LEA BX, BLOCK		
		 MOV SI, 99*2
		 MOV AX,[BX+SI]
		或:
LEA SI, BLOCK		
		 MOV BX, 99*2
		 MOV AX,[BX+SI]

2.9 已知:(BX)=1200H,(BP)=2400H,(SI)=0100H,(DI)=0200H,(SS)=1000H,(DS)=2000H,(ES)=3000H,变量VAR1对应地址为2000H,试分别指出下列指令中存储器的寻址方式及物理地址。
(1)MOV AL,[020H]
(2)MOV AL,[BP+010H]
(3)MOV [BX+SI-20H],AX
(4)MOV BL,ES:[BX+10H]
(5)MOV VAR1[BX+DI],AL
解:(1)直接寻址 PA=(DS)*16+EA=20000h+020H=20020H
(2)寄存器相对寻址PA=(SS)*16+EA=10000H+2400H+010H=12410H
(3)相对基址加变址寻址PA=(DS)*16+EA=20000H+1200H+0100H-20H=212E0H
(4)寄存器相对寻址PA=(ES)*16+EA=30000H+1200H+10H=31210H
(5)相对基址加变址寻址PA=(DS)*16+E

  • 11
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值