### 微型计算机实验指导知识点解析
#### 一、填空题知识点解析
**1. 符号数-8192的补码用十六进制数表示为E000H。**
- **知识点**: 符号数的补码表示方法。
- **解析**: 在计算机中,正数的补码与其原码相同;负数的补码表示方法为:先取反(即每个比特取反),然后加1。-8192为一个13位的负数,在8位或16位系统中通常会扩展到对应位宽。对于-8192而言,其二进制表示为`10000000000000`,取反得`01111111111111`,再加1得到`10000000000000`,即13个0后面跟一个1。在16位系统中,前三位用0填充,因此得到`0001000000000000`,转换为十六进制就是E000H。
**2. 8位补码数CBH的真值用十进制表示为-53。**
- **知识点**: 补码转换为十进制的方法。
- **解析**: CBH为一个8位的补码数,二进制表示为`11001011`。最左边的1表示这是一个负数。将它转换为十进制,去掉符号位后的二进制数为`001011`,即十进制11,再加上符号位表示的-128(2^7的相反数),得到-128 + 11 = -53。
**3. 十进制数1025所对应的十六进制数为401H;所对应的压缩BCD数为1025H;所对应的ASCII码为31303235。**
- **知识点**: 数值转换。
- **解析**:
- 十进制1025转换为十六进制:1025除以16得64余1,继续除以16得4余0,所以得到401H。
- 压缩BCD(Binary-Coded Decimal)是一种将十进制数字编码为二进制的形式,每4位二进制表示一位十进制数。1025的BCD表示为0001 0000 0010 0101,转换为十六进制即1025H。
- ASCII码表示的是字符,1025对应的ASCII码分别是1、0、2、5,对应的ASCII码为31、30、32、35,组合起来即31303235。
**4. 将8位无符号数A2H扩展为16位形式,则应为00A2H;将8位补码数F3H扩展为16位形式,则应为FFF3H。**
- **知识点**: 数值扩展。
- **解析**:
- A2H为无符号数,扩展到16位时高位补0,因此为00A2H。
- F3H为补码表示的一个负数,在16位系统中需要保持其负数性质不变,因此高位补1,得到FFF3H。
**5. 在8086/8088的通用寄存器AX、BX、CX、DX中,用作存储器间址的寄存器为BX;用作I/O端口间址的寄存器为DX;用作循环控制指令(LOOP)的寄存器为CX。**
- **知识点**: 寄存器的作用。
- **解析**: 在8086/8088体系结构中,BX寄存器常用于基址寻址,即作为存储器地址的一部分;DX寄存器用于指定I/O端口地址;CX寄存器用于循环指令中的计数。
**6. 8086/8088有4段寄存器。其中用来存放数据段段首地址的段寄存器为DS;用来存放代码段段首地址的段寄存器为CS;用来存放堆栈段段首地址的段寄存器为SS。**
- **知识点**: 段寄存器的作用。
- **解析**: DS(Data Segment)用于数据段;CS(Code Segment)用于代码段;SS(Stack Segment)用于堆栈段。
**7. 若DS=095FH时,物理地址是11820H。当DS=2F5FH时,物理地址为37820H。**
- **知识点**: 物理地址计算。
- **解析**: 在8086/8088中,物理地址由段地址左移4位(乘以16)加上偏移地址组成。因此,当DS=095FH时,物理地址为095F0H + 00820H = 11820H;当DS=2F5FH时,物理地址为2F5F0H + 00820H = 37820H。
**8. 8086/8088微处理器堆栈的伸展方向是高地址向低地址。堆栈的操作是以字为单位进行的。**
- **知识点**: 堆栈的操作机制。
- **解析**: 在8086/8088体系结构中,堆栈采用向下增长的方式,即当数据压入堆栈时,堆栈指针(SP)减小;当数据弹出堆栈时,堆栈指针增加。堆栈中的数据是以字为单位进行操作的。
**9. AX中有一个负数,欲求其绝对值,若该数为补码,则用指令NEG AX;若该数为原码,则用指令AND AX,7FFFH。在循环程序设计中,对于控制循环的DECCX和JNZ AGAIN两条语句可合并用一条语句LOOP AGAIN代替。**
- **知识点**: 指令操作与循环控制。
- **解析**:
- 对于补码表示的负数,可以通过对其取反再加1(即NEG指令)获得其绝对值。
- 对于原码表示的负数,可以通过屏蔽最高位来获得其绝对值,即AND AX, 7FFFH。
- 循环控制中,DECCX减少CX寄存器的值,JNZ AGAIN在CX不为零时跳转至AGAIN。这些功能可以用LOOP AGAIN指令直接实现,LOOP AGAIN会自动处理CX的递减和判断是否为零。
**10. 写出执行下列程序段的中间结果:**
- **知识点**: 指令执行顺序与结果。
- **解析**: 执行程序段后的结果为AX=0908H。
1. MOV AX, 0809H; AX = 0809H
2. MOV DL, 10; DL = 10
3. XCHG AH, DL; AH = 10, DL = 08
4. MUL AH; AX = AH * AL = 10 * 08 = 005AH
5. AAM; 将AX中的数值转换为ASCII码形式,AX = 0900H
6. ADD AL, DL; AL = AL + DL = 09 + 08 = 08; AX = 0908H
**11. 现要用6116(2K×8位)静态RAM芯片构成8K×32位的存储器,共需此种芯片16片。**
- **知识点**: 存储器扩展。
- **解析**: 构建8K×32位存储器,意味着需要8K个地址,每个地址包含32位数据。6116芯片为2K×8位,即每个芯片能提供2K个地址,每个地址8位数据。为了构建目标存储器,首先需要在宽度上扩展到32位,即需要4片6116芯片并联;然后还需要在长度上扩展到8K,即需要2组这样的4片芯片串联,总共需要16片芯片。
**12. 8086/8088微处理器对I/O设备的管理是利用IN和OUT指令来实现的。**
- **知识点**: I/O设备管理。
- **解析**: IN指令用于从I/O端口读取数据到寄存器中,OUT指令用于将寄存器中的数据写入I/O端口。这些指令是8086/8088微处理器与外部设备交互的主要手段之一。
**13. 已知中断向量表中,001C4H中存放2200H,001C6H中存放3040H,则其中断类型码是71H,中断服务程序的入口地址的逻辑地址和物理地址分别为3040H:2200H和32600H。**
- **知识点**: 中断向量表与中断处理。
- **解析**: 中断向量表中每条中断向量占用4个字节,001C4H和001C6H分别存储中断服务程序的低16位和高16位地址。因此,低地址指向的值为2200H,高地址指向的值为3040H,结合形成3040H:2200H。根据8086/8088的中断向量表规则,每个中断向量占用4个字节,001C4H到001C6H之间的位置对应于第71H中断类型码。
#### 二、单项选择题知识点解析
**1. 算式65H-3EH的运算结果是否有溢出,结果的真值为(C)**
- **解析**: 65H - 3EH = 27H = 39(十进制),没有溢出发生。
**2. CPU执行算术运算指令不会影响的标志位是(D)**
- **解析**: 方向标志(DF)不被算术运算指令改变。
**3. 已知AL,BL中为无符号数,若使AL≤BL时转到标号AGAIN,哪个程序段不能实现此功能(D)**
- **解析**: 选项D中的JNB AGAIN指令是在AL≥BL时跳转,不符合题目要求。
**4. 下列指令中不会改变指令指示器IP的是(A)**
- **解析**: MOV指令不会改变IP寄存器的值。
**5. 使用移位指令,把寄存器的最高位移入CF,并在最低位补为0时使用(D)**
- **解析**: SAL指令(Shift Arithmetic Left)可以实现这一操作。
**6. 已知下列程序段... 当程序执行完MOV AX,[BX]指令后, AX=(C)**
- **解析**: BX = DATA 的地址,DATA[2]的值为06H,因此AX = 0600H。
**7. 某存贮器的容量为4K字节,则CPU至少应提供(C)根地址线才能对所有存贮单元进行寻址。**
- **解析**: 4K字节等于4096字节,需要12根地址线进行寻址。
**8. 8086/8088指令OUT 80H,AL表示(C)**
- **解析**: OUT指令用于将AL寄存器中的值输出到指定的I/O端口。
**9. 若8255A口工作于方式1输出,B口工作于方式0输入,C口工作于方式0输入,则方式控制字应为(B)。**
- **解析**: 方式控制字应为0ABH。
**10. 80X86有几种类型的中断。(B)**
- **解析**: 80x86有两种类型的中断:软件中断和硬件中断。
#### 三、简答题知识点解析
**1. 分别指出下列指令中目的操作数的寻址方式。**
- **解析**:
- (1). 立即寻址
- (2). 直接寻址
- (3). 寄存器相对寻址
- (4). 基址变址寻址
- (5). 寄存器间接寻址
**2. 分别写出实现下列功能的程序段。**
- **解析**:
- (1) 程序段实现将AX中间8位(作高8位),BX的低4位和DX的高4位(作低4位)拼成一个新的字。
```assembly
MOV CL, 4
SHL AX, CL ; 移动AX中的中间8位到高8位
SHL BL, CL ; 移动BX的低4位到高4位
MOVAL, BL ; 将BL的低4位放到AL中
SHR DH, CL ; 移动DX的高4位到低4位
OR AL, DH ; 将AL和DH拼接起来
```
- (2) 程序段实现将AL中一个两位的十六进制数变换成为其所对应的ASCII码, 存放到AX中。
```assembly
CMP AL, 9
JAE L1
ADD AL, '0'
JMP L2
L1:
ADD AL, 'A' - 10
L2:
MOV AX, 0
MOV AH, AL
MOV AL, '0'
```
以上是对微型计算机实验指导中的知识点进行了详细的解析和解释,涵盖了从基本概念到具体操作命令的应用,以及相关的编程技巧和指令集的使用方法。