1、 MOV CS, 3000H ( X ) 2、 POP AX ( √ ) 3、 PUSH AL ( X ) 4、 OUT 0FCH,AX ( X ) 5、 IN AX,03FCH ( X ) 6、 ADD BX, [BX] ( √ ) 7、 AND AL, 0F0H ( √ ) 8、 INT 300H ( X ) 9、 MOV AX, [SI][DI] ( X ) 10、 RET 6 ( √ ) 11、 MOV WORD PTR [BX] ,0 ( √ ) 12、SHL AX, 4 ( X ) 13、MOV AX,BL ( X ) 14、MOV [BX], [DI] ( X ) 15、CALL FAR PTR S ( √ ) 16、MOV DS,1000H ( X) 17、ADD DS,AX ( X ) 18、MOV AL,1000H ( X ) 19、JMP WORD PTR [BX] ( √ ) 20、SHL AX,CL ( √ )
三、填空题
设 (DS)=3000H, (ES)=4000H,(SS)=5000H,(BX)=1000H, (BP)=1001H, (SI)=0001H,(DI)=0002H,(31000H)= 3412H, (31002H)= 7856H,(41000H)=9ABCH, (41002H)=2EF0H,(51000H)=3456H,(51002H)=789AH,说明下列各条指令执行完后AX寄存器的内容。
1、执行指令 MOV AX,ES:[BX] 后(AX)= 9ABCH 2、执行指令 MOV AX,[BX+SI] 后(AX)= 5634H 3、执行指令 MOV AX,[BP] 后(AX)= 9A34H
4、写出与指令 LEA BX, BUFFER 完全等效的指令 MOV BX ,OFFSET BUFFER
5、回车符(Enter)换行符的ASCII码分别是 0DH 、0AH 6、机器执行下列指令序列后,正确的结果是(BL)=05H MOV BL,81H ADD BL,BL ADC BL,BL
7、下面的程序执行后,(ax)= 6 内存地址 机器码 汇编指令 1000:0 b8 00 00 mov ax,0 1000:3 e8 01 00 call s 1000:6 40 inc ax 1000:7 58 s: pop ax
8、分配给中断类型号1CH在中断向量表中的物理地址为00070H
9、定时器中断类型号为08H,则其中断向量在中断向量表中的物理地址为00020H 10、若机器进行有符号数运算,则执行下列指令后: (OF)= 0
MOV AL,0F0H ADD AL,78H
11、若机器进行有符号数运算,则执行下列指令后: (OF)= 1 MOV AL,0F0H ADD AL,88H
12、在文本方式下,对应显示屏幕上的每个字符,在显存中由 两 个字节表示。 13、若给定段地址为0010H,仅通过变化偏移地址寻址,则CPU的寻址范围为00100H到_______100FFH_______(请写出物理地址)。
14、写出从端口25H读入一个字节数据的指令 IN AL, 25H
15、段地址为1000H,若将内存空间10000H~1FFFFH当作栈使用,初始化栈为空,那么寄存器SP的值应设置为(SP)=1FFFDH
16、存储下一条要执行指令的偏移地址的寄存器是 IP(指令指针寄存器) 17、实现将AX的高8位清零低8位保持不变的指令是 AND AX, 00FFH
18、DEBUG调试程序时单步执行的命令是 T 19、十进制数45的BCD码是 0100 0101 20、AL中存放某大写字母的ASCII码,要将其转换为对应小写字母的ASCII码,可用 ADD AL, 20H 指令实现。
四、程序填空题
1、以下是将BX中的二进制数转换为十六进制数(字母用大写A~F)并显示的程序源文件BINIHEX.ASM,请阅读并完成该程序。
……
START : MOV CH, 4
ROTATE: MOV CL,4
ROL BX, CL ;将BX的高4位移至低4位 MOV AL, BL
AND AL,0FH ;保留AL的低4位 ADD AL, 30H CMP AL, 3AH JL PRINTIT
ADD AL,07H ;转变为大写字母的ASCII码 PRINTIT : MOV DL, AL
MOV AH, 02H INT 21H ;显示字符 DEC CH
JNZ ROTATE ;判断循环是否结束
MOV AH, 4CH INT 21H ……
2、以下是子程序BCDIASC,请阅读程序并完成填空。
;------功能:将十进制的两位数的BCD码转换为ASCII码并在屏幕中间显示. ;------参数:(AL)= 十进制的两位数的BCD码,无出口参数 BCDIASC : MOV AH, AL
MOV CL,4 SHR AH, CL ADD AH,30H
AND AL, 0FH
ADD AL,30H MOV BX,0B800H
MOV ES, BX
MOV BYTE PTR ES:[160*12+40*2] ,AH ;在屏幕中间显示
MOV BYTE PTR ES:[160*12+40*2+2] ,AL RET ;子程序结束
3、以下是采用位触发方式控制扬声器发声的子程序SOUND,请补充完整。
;----------功能:子程序SOUND控制扬声器发声
;---------入口参数:(BX)=发声频率,控制脉宽; (CX)=发声时间,控制音长。 SOUND PROC NEAR PUSH AX PUSH DX MOV DX,CX
IN AL,61H ; 从控制端口获得控制信息 AND AL, 11111100B TRIG:
XOR AL, 2 ; 按1、0交替变换1号位的值 OUT 61H, AL
MOV CX, BX DELAY:
LOOP DELAY ; 控制发声频率 DEC DX
JNZ TRIG ; 控制发声时间长度 POP DX POP AX
RET SOUND ENDP
五、程序分析题
1、已知数据段中ARRAY是字符串首地址、COUNT是字符串的长度,ARRAY和COUNT均定义为字节类型。分析下面程序段完成的功能是什么?
……
MOV AL,20H MOV CH,0 MOV CL, COUNT CLD
LEA DI, ARRAY 用空格符(20H)清除某一字符区 REP STOSB
……
2、分析下面程序段完成的功能是什么?
……
MOV CX,10
L1: MOV AH,1 INT 21H
PUSH AX LOOP L1
MOV CX,10 把输入的字符逆向输出 L2: POP DX MOV AH,2 INT 21H LOOP L2
……
3、分析下面程序段完成的功能是什么?
…… MOV CH,4
ROTATE: MOV CL, 4 ROL BX,CL MOV AL, BL
AND AL,0FH ADD AL,30H CMP AL, 3AH JL PRINTIT
ADD AL,7 PRINTIT : MOV DL, AL MOV AH,2
INT 21H DEC CH
JNZ ROTATE 二进制数(BX)到十六进制数转换并显示
……
4、分析下面程序段完成的功能是什么?
……