【汇编语言程序设计期末考试题】
汇编语言是一种低级编程语言,它使用指令集的助记符来表示机器语言。本题目的重点在于考察学生对汇编语言基本概念、指令系统、寻址方式以及操作数类型的掌握程度。
1. CPU发出的访问存储器的地址是(物理地址)。物理地址是CPU直接访问内存时使用的地址,它由段地址和偏移地址组合而成。
2. 将高级语言的程序翻译成机器码程序的实用程序是(编译程序)。编译程序将高级语言源代码转换为特定机器架构的机器语言程序。
3. DEC BYTE PTR[BX]指令中的操作数的数据类型是(字节)。DEC是减1指令,BYTE PTR表明操作数是字节类型。
4. BUFFER DB 01H,0AH在汇编语言中被称为(变量),因为它用来存储数据。
5. 在串操作指令中,源串操作数的段地址一般在(DS)存放器中。DS段寄存器通常用于指向数据段。
6. 使计算机执行某种操作的命令是(指令)。指令是计算机硬件能直接理解和执行的命令。
7. 将数据5618H存放在存储单元中的伪指令是(DATA1 DB 18H,00H,56H,00H)。DB是定义字节数据的伪指令,此处需要两个字节存储16位数值5618H。
8. 当AND AX, CX指令执行后,如果AX=3500H, CX=56B8H,结果AX将会是(0000H)。AND指令执行按位逻辑与操作,两个16位数值相与全为0时,结果为0。
9. 微机中普遍采用的字符编码是(ASCII码)。ASCII码是一种7位编码,可以表示128个不同的字符。
10. 用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为(汇编语言)。
**填空题部分**
1. 在8086/8088汇编语言中,搜索字符串指令的助记符是REPNE SCASB。这是用于查找子串的指令。
2. 计算机系统包括硬件和软件两大局部。
3. 8086/8088存储器分四个段,分别是CS(代码段)、DS(数据段)、SS(堆栈段)和ES(附加段)。
4. A. ADD AX, 1200H后,AX=3200H,ZF=0(未等于零);B. SUB AX, BX后,AX=8000H,ZF=0(未等于零);C. MOV AX, [BX]后,AX=5002H,CF=0(无进位);D. NEG WORD PTR[1200H]后,(31200H)=0DH,CF=1(负数变正数)。
5. 寻址方式计算如下:
A. 使用D的直接寻址(0A2B1H)
B. 使用BX的存放器间接寻址(2200H + 1000H = 3200H)
C. 使用BX和D的存放器相对寻址(2200H + 1000H + 0100H = 3300H)
D. 使用BX、SI和D的相对基址变址寻址(2200H + BX + SI + D = 2200H + 1000H + 0100H + 0A2B1H)
E. 使用BX、SI的基址变址寻址(2200H + BX + SI = 2200H + 1000H + 0100H)
**简答题部分**
1. A. 正确;B. 错误,ARRAY是字节型数组,应使用DB,不能直接用AX接收;C. 错误,数组索引超出范围;D. 错误,OFFSET不可用于相对基址变址寻址。
2. MOV AX, TABLE和MOV AX, OFFSET TABLE的区别在于前者将TABLE的数值(0FF00H)放入AX,后者将TABLE的地址放入AX。执行后,AX分别为0FF00H和0100H。
3. 对于数据定义,三条MOV指令分别汇编成:
- MOV AX, LENGTH TAB1: 将数组TAB1的长度(元素个数)10放入AX
- MOV BL, LENGTH TAB2: 将数组TAB2的长度(元素个数)10放入BL
- MOV CL, LENGTH TAB3: 将字符串'TAB3'的长度(字节数)4放入CL
4. 子程序的说明文件中通常包含子程序的名称、参数列表、返回值类型以及子程序的功能描述。这些信息有助于调用者理解并正确使用子程序。在编写汇编语言程序时,子程序的设计和实现是提高程序可读性和模块化的重要手段。