一、改错(只能对每条错误指令的一个操作数进行修改)。
1. ADD BX,AL 改正:
2. MOV AX, A999H 改正:
3. MOV AX, F8 改正:
4. MOV AL, 1234H 改正:
5. MOV AX, [CX] 改正:
6. MOV DS, 1000H 改正:
7. ADD [BX],10 改正:
8. PUSH AH 改正:
9. IN AL, BX 改正:
10.OUT 400H, AL 改正:
11. MUL 8 改正:
12. MOV [DI],WORD PTR [SI] 改正:
13. ADD DI, AL 改正:
14. MOV CS, AX 改正:
15. SUB 10[SI][DI], AX 改正:
二、设 (DS)=1000H, (ES)=2000H, (SS)=3000H, (BX)=100H, (SI)=200H, (DI)=300H, (BP)=400H。请指出下列各条指令中目的操作数是什么寻址方式?并说明物理地址是多少?
SUB [BP], BX ;;
MOV [BX+DI], SI ;;
ADD ES:[SI], DI ;;
MOV 10[BX], DI ;;
MOV DS:[100H], BX ;;
三、 设物理地址20010H处的字为1234H,物理地址20012H处的字为5678H,且(DS)=2000H, (SS)=2001H。请写出执行下面的每条指令后AX寄存器的内容是什么?
MOV BX, 10H
MOV AX, 1[BX] ;;(AX)=?
MOV AX, 2[BX] ;; (AX)=?
MOV BP, 0
MOV AX, [BP] ;; (AX)=?
MOV AX, 1[BP] ;; (AX)=?
四、依次执行如下程序段中的各指令,指出每一条指令执行后,AX中的十六进制内容是什么?
MOV AX, 1234H ;(AX) =
SAL AX, 1 ;(AX) =
AND AL, 0FH ;(AX) =
ADD AX, 1000H ;(AX) =
ROR AX, 1 ;(AX) =
XCHG AH, AL ;(AX) =
INC AH ;(AX) =
TEST AX, 8000H ;(AX) =
五、数据段问答题
设当前数据段的定义如下:
DATA SEGMENT
A DB 1, ‘1’, -1, 0
B DW 5678H, -1
C DW $, B,$
D DB $-B,2 DUP(9)
DATA ENDS
1. 以字节为单位,画出该数据段的数据存储示意图, 并在存贮图中标明各变量的偏移地址;
2. 指出执行下列各指令后,各寄存器的内容。
(1)MOV AX, A ; (AX) = ________
(2)MOV BX, C-1 ; (BX) = ________
六、简答题
1. 名词解释: 汇编语言 汇编 汇编程序
2. 如何正确实现 (AL) → DI的功能?请分有符号数和无符号数两种情况讨论。
3.说明指令:REPZ CMPSB 的工作过程。
4.什么是计算机中断?
5.说明宏与子程序的区别。
七、编程题
编写一个完整的程序,实现从键盘上输入一个字符(数字字符和字母),以16进制显示该字符的ASCII码(例如输入字母’a’,则显示61)
提示:使用下面的DOS功能调用
(1) 功能:等待从键盘输入一个字符并将输入字符的ASCII码送入寄存器AL中。
调用格式:MOV AH,1
INT 21H
(2) 功能:显示一个字符
调用格式: MOV DL,待显示字符的ASCII码
MOV AH, 2
INT 21H