【【汇编语言程序设计】试题】一、选择题(每题2分,共10分)
1. 在8086微处理器中,段寄存器不包括以下哪一个?
A. CS
B. DS
C. SS
D. SP
2. 下列指令中,哪一个是用于将立即数传送到寄存器的?
A. MOV AX, [BX]
B. MOV AX, 1234H
C. ADD AX, BX
D. JMP 1000H
3. 汇编语言中的“ORG”指令的作用是:
A. 定义数据段
B. 设置程序起始地址
C. 声明变量
D. 跳转到指定地址
4. 在8086中,堆栈段寄存器是:
A. CS
B. DS
C. SS
D. ES
5. 下列哪种寻址方式可以访问存储器中的数据?
A. 立即寻址
B. 寄存器寻址
C. 直接寻址
D. 隐含寻址
二、填空题(每空2分,共10分)
1. 在8086中,IP寄存器的作用是________。
2. 汇编语言中,用于定义常量的关键字是________。
3. 指令“MOV AL, [BX+SI]”使用的是________寻址方式。
4. 在8086中,标志寄存器包含________个标志位。
5. 8086的物理地址由________和偏移地址组成。
三、简答题(每题5分,共10分)
1. 简述汇编语言与高级语言的主要区别。
2. 什么是段寄存器?它在内存管理中起到什么作用?
四、程序分析题(每题10分,共20分)
1. 分析以下代码片段,并说明其功能:
```
MOV AX, 000AH
MOV BX, 000BH
ADD AX, BX
```
2. 请写出一段汇编程序,实现将寄存器AL中的内容与BL中的内容相加,并将结果保存到CL中。
五、编程题(每题10分,共20分)
1. 编写一个简单的汇编程序,实现从键盘输入一个字符,并将其显示在屏幕上。
2. 编写一个程序,计算1到10的和,并将结果存入内存单元SUM中。
六、综合题(每题10分,共20分)
1. 说明8086处理器的内部结构及其各部分的功能。
2. 举例说明几种常用的寻址方式,并分别解释其特点。
参考答案(供教师参考)
一、选择题
1. D
2. B
3. B
4. C
5. C
二、填空题
1. 指令指针
2. EQU 或 DB/DT
3. 变址寻址
4. 9
5. 段地址
三、简答题
1. 汇编语言直接对应机器指令,执行效率高,但可读性差;高级语言更接近人类语言,易于编写和维护,但需要通过编译转换为机器码。
2. 段寄存器用于指示当前程序使用的内存段,如代码段、数据段、堆栈段等,用于地址的分段管理。
四、程序分析题
1. 将000AH和000BH相加,结果存入AX中。
2. 示例程序:
```
MOV AL, 05H
MOV BL, 03H
ADD AL, BL
MOV CL, AL
```
五、编程题
1. 示例程序(使用DOS中断):
```
MOV AH, 01H
INT 21H
MOV DL, AL
MOV AH, 02H
INT 21H
```
2. 示例程序:
```
MOV AX, 0000H
MOV CX, 000AH
MOV BX, 0001H
LOOP1:
ADD AX, BX
INC BX
DEC CX
JNZ LOOP1
MOV SUM, AX
```
六、综合题
1. 8086内部包括ALU、寄存器组、控制单元、总线接口单元等,各部分协同完成指令的取指、译码、执行等功能。
2. 常见寻址方式包括:
- 立即寻址:操作数直接在指令中给出。
- 寄存器寻址:操作数在寄存器中。
- 直接寻址:操作数地址在指令中给出。
- 间接寻址:操作数地址由寄存器提供。
- 变址寻址:操作数地址由基址寄存器和变址寄存器共同决定。