一. 单选题(共3题,3分)
1. (单选题, 1分)下列指令中,有语法错误的是
- A. MOV [SI],DS:[DI]
- B. IN AL,DX
- C. JMP WORD PTR[SI]
- D. PUSH WORD PTR[BP+SI]
我的答案: A
使用MOV指令要注意:
1.立即数只能作为源操作数
2.没有存储器之间可以直接传送与交换的指令
3.没有用立即数对段寄存器直接赋值的指令
4.段寄存器之间无传送指令
5.两个操作数的类型要一致
6.要能确定是字节还是字操作
2. (单选题, 1分)要检查寄存器AL中的内容是否与AH相同,应使用的指令是 。
- A. AND AL,AH
- B. OR AL,AH
- C. XOR AL,AH
- D. SBB AL,AH
我的答案: C
3. (单选题, 1分)下列指令中,无法完成AX的内容清0的是 。
- A. AND AX,0
- B. SUB AX,AX
- C. XOR AX,AX
- D. CMP AX,AX
我的答案: D
二. 填空题(共4题,7分)
4. (填空题, 2分)
3 | 03H |
00H | |
$+4 | 03H |
10H | |
A | 41H |
00H | |
12H | 12H |
00H | |
20/3 | 06H |
0BH | 0BH |
CNT | 08H |
1FH | 1FH |
已知下列一组语句:
ORG 1000H //定义起始地址为1000H
VAR DW 3,$+4,‘A’,12H //DW定义字变量16位两字节
CNT EQU $-VAR //定义CNT的值为VAR的长度(偏移地址)
DB 20/3,0BH,CNT,1FH //定义字节变量8位一字节
MOV AX,VAR+2 //将变量VAR+2的一个字传送到AX中
MOV BX,VAR+10 //将变量VAR+10的一个字传送到AX中
执行语句和后,AX=1006H,BX=1F08H。
ORG是Origin的缩写:起始地址,源。在汇编语言源程序的开始通常都用一条ORG伪指令来实现规定程序的起始地址。如果不用ORG规定则汇编得到的目标程序将从0000H开始
EQU伪指令是通过文本替换的方式完成,定义非整数可以用 name EQU <text>
的形式
5. (填空题, 2分)
25 | 19H |
00H | |
36 | 24H |
00H | |
-1 | FFH |
FFH | |
-16 | F0H |
FFH | |
10000 | 10H |
27H | |
13 | 0DH |
00H |
执行下列指令后,DX=10FFH。
TABLE DW 25,36,-1,-16,10000,13
PYL DW 7
…
MOV BX,OFFSET TABLE //取出TABLE的偏移地址
ADD BX,PYL //BX=BX+7
MOV DX,[BX] //将[BX+7]的一个字送到DX中
6. (填空题, 1分)
下列指令执行后,AL= H。
MOV AL,58H
MOV BL,26H
ADD AL,BL
DAA
BCD数运调整指令:
AAA:加法分离BCD码调整
DAA:加法组合BCD码调整
(1) 84
7. (填空题, 2分)
下列指令执行后,AX=0023H。
MOV CX,5 //循环次数
MOV AX,50
NEXT:SUB AX,CX
LOOP NEXZ