《汇编语言复习题.doc》由会员分享,可在线阅读,更多相关《汇编语言复习题.doc(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、汇编语言复习题一、单选题 1. 数字 1 的 ASCII 码值是( )。A. 1 B. 30H C. 31H D. 20H2ASCII 码字符使用 ( ) 位进行编码。A. 3 B. 7 C. 8 D. 163. 汇编语言源程序经过汇编后产生( )文件。A. .ASM B. .OBJ C. .EXE D. .DOC4汇编语言源程序是( )文件。A. .EXE B. .ASM C. .OBJ D. .DOC5. 汇编语言源程序中定义段的伪指令是( ) 。A. SEGMENT.ENDS B. PROC.ENDP C. MACRO.ENDM D. SEGMENT.END 6汇编语言源程序中定义过程的
2、伪指令是( ) 。A. SEGMENT.ENDS B. PROC.ENDP C. MACRO.ENDM D. SEGMENT.END7. 8086CPU 的地址总线宽度为( ) 。A. 8 B. 16 C. 20 D. 3288086CPU 的数据总线宽度为( ) 。A. 8 B.10 C.16 D.209下列哪个寄存器可拆分成 2 个 8 位寄存器( ) 。A. BP B. BX C. CS D. IP10. 8086CPU 提供了( )个 16 位寄存器。A. 8 B. 12 C. 14 D. 2211. DEBUG 调试程序时查看寄存器内容的命令是( ) 。A. D B. E C. U
3、D. R12DEBUG 调试程序时查看内存单元内容的命令是( ) 。A. R B. E C. U D. D13. 下列哪个寄存器用来指示当前栈顶的偏移地址( ) 。A. SP B. BX C. BP D. IP14. 下列地址信息与 4015H:000FH 确定的内存地址不同的是( ) 。A. 4013H:002FH B. 4010H:005FH C. 4000H:005FH D. 4015FH15. 下列哪个寄存器在编程时不能用来保存内存单元的偏移地址( ) 。A. DI B. CX C. BX D. SI16. 指令 MOV AX, BX 中源操作数的寻址方式是 ( ) 。A. 直接寻址
4、B. 寄存器寻址 C. 寄存器间接寻址 D. 寄存器相对寻址 17 指令 MOV AL,STRNG SI 中源操作数的寻址方式是 ( ) 。A. 直接寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 寄存器相对寻址 18 在 8086 微机的输入输出指令中,可直接由指令指定的 I/O 端口号有 ( )个。 A. 16 B. 64 C. 256 D. 21619. 标志寄存器中下列哪个位是中断标志位( )。A. CF B. OF C. DF D. IF20标志寄存器中下列哪个位是方向标志位( )。A. CF B. OF C. DF D. IF21. 设 SP 初值为 4000H,执行指令“ P
5、OP AX ”后,SP 的值是( ) 。A.4002H B. 3FFEH C. 3998H D. 4001H22设 SP 初值为 4000H,执行指令“ PUSH AX ”后,SP 的值是( ) 。A. 3FFEH B. 3FFFH C. 3998H D. 4002H23在内存分段管理中,8086CPU 能访问到的最小段空间是( ) 。 A. 16 B B. 16KB C. 64KB D. 64B24. 在内存分段管理中,8086CPU 能访问到的最大段空间是( ) 。 A. 16 B B. 16KB C. 64KB D. 64B25. 8086CPU 允许有( )个中断源A. 0 B. 16
6、 C. 64 D. 25626. Debug 加载程序后查看寄存器内容如下,则该程序第一条指令的起始地址是( )ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0001 A. 00001H B. 0b2d1H C. 0b3d1H D.0b3e1H 27. 下列数据段中内容如下,则与符号 COUNT 等价的值是( )BUF DB 2 DUP(0,2 DUP (1,2,3) ,3) COUNT EQU $ - BUF A. 3 B. 5 C. 12 D. 16 28. mov cx,0 s: add ax,bx loop s 以上指令序列执行后 add ax,bx 指令被执行
7、了( )次A. 65536 B. 65535 C. 1 D. 029. 宏定义体内有标号,程序中要多次调用该宏,则宏定义体内必须使用( ) 。A. MACRO B. XALL C. LOCAL D. INCLUDE30. 下列对于 Intel8086cpu 标志寄存器的说法正确的是( )A. 无符号数运算的进位情况由 of 位记录,有符号数运算的溢出情况由 cf 位记录。B. cpu 执行每一条指令都会改变标志寄存器的内容。C. 当前指令对 flags 的影响,不会为后续指令的执行提供依据。D. 并不是所有的条件转移指令都要参考标志寄存器中的相关标志位。二、判断题针对 8086CPU,请判断下
8、列指令格式的正误,正确打“” ,错误打“” 。1、 MOV CS, 3000H ( ) 2、 POP AX ( )3、 PUSH AL ( )4、 OUT 0FCH,AX ( ) 5、 IN AX, 03FCH ( )6、 ADD BX, BX ( )7、 AND AL, 0F0H ( )8、 INT 300H ( )9、 MOV AX, SIDI ( )10、 RET 6 ( )11、 MOV WORD PTR BX ,0 ( )12、SHL AX, 4 ( )13、MOV AX,BL ( )14、MOV BX, DI ( )15、CALL FAR PTR S ( )16、MOV DS,10
9、00H ( )17、ADD DS,AX ( )18、MOV AL,1000H ( )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
10、:BX 后(AX)= 2、执行指令 MOV AX,BX+SI 后(AX)= 3、执行指令 MOV AX,BP 后(AX)= 4、写出与指令 LEA BX, BUFFER 完全等效的指令 5、回车符(Enter)换行符的 ASCII 码分别是 、6、机器执行下列指令序列后,正确的结果是(BL )MOV BL,81HADD BL,BLADC BL,BL7、下面的程序执行后, (ax)= 内存地址 机器码 汇编指令 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、分配给中断类
11、型号 1CH 在中断向量表中的物理地址为9、定时器中断类型号为 08H,则其中断向量在中断向量表中的物理地址为10、若机器进行有符号数运算,则执行下列指令后: (OF)= MOV AL,0F0H ADD AL,78H 11、若机器进行有符号数运算,则执行下列指令后: (OF)= MOV AL,0F0H ADD AL,88H 12、在文本方式下,对应显示屏幕上的每个字符,在显存中由 个字节表示。13、若给定段地址为 0010H,仅通过变化偏移地址寻址,则 CPU 的寻址范围为00100H 到_(请写出物理地址) 。14、写出从端口 25H 读入一个字节数据的指令15、段地址为 1000H,若将内
12、存空间 10000H1FFFFH 当作栈使用,初始化栈为空,那么寄存器 SP 的值应设置为(SP)=16、存储下一条要执行指令的偏移地址的寄存器是17、实现将 AX 的高 8 位清零低 8 位保持不变的指令是18、DEBUG 调试程序时单步执行的命令是19、十进制数 45 的 BCD 码是20、AL 中存放某大写字母的 ASCII 码,要将其转换为对应小写字母的 ASCII 码,可用 指令实现。 四、程序填空题1、以下是将 BX 中的二进制数转换为十六进制数(字母用大写 AF)并显示的程序源文件 BINIHEX.ASM,请阅读并完成该程序。 START : MOV CH, 4ROTATE: R
13、OL BX, CL ;将 BX 的高 4 位移至低 4 位MOV AL, BL;保留 AL 的低 4 位ADD AL, 30H CMP AL, 3AHJL PRINTIT;转变为大写字母的 ASCII 码PRINTIT : MOV DL, ALINT 21H ;显示字符JNZ ROTATE ;判断循环是否结束MOV AH, 4CHINT 21H2、以下是子程序 BCDIASC,请阅读程序并完成填空。;-功能:将十进制的两位数的 BCD 码转换为 ASCII 码并在屏幕中间显示.;-参数:(AL)= 十进制的两位数的 BCD 码,无出口参数BCDIASC : MOV AH, ALMOV CL,4
14、 ADD AH,30HADD AL,30H MOV BX,0B800HMOV BYTE PTR ES:160*12+40*2 ,AH ;在屏幕中间显示MOV BYTE PTR ES:160*12+40*2+2 ,AL ;子程序结束3、以下是采用位触发方式控制扬声器发声的子程序 SOUND,请补充完整。;-功能:子程序 SOUND 控制扬声器发声;-入口参数:(BX)=发声频率,控制脉宽; (CX)=发声时间,控制音长。SOUND PROC NEARPUSH AXPUSH DXMOV DX,CXIN AL,61H ; 从控制端口获得控制信息TRIG:XOR AL, 2 ; 按 1、0 交替变换
15、1 号位的值MOV CX, BX DELAY:; 控制发声频率DEC DX; 控制发声时间长度POP DXPOP AXRET SOUND ENDP五、程序分析题1、已知数据段中 ARRAY 是字符串首地址、COUNT 是字符串的长度, ARRAY 和COUNT 均定义为字节类型。分析下面程序段完成的功能是什么?MOV AL,20H MOV CH,0MOV CL, COUNTCLDLEA DI, ARRAYREP STOSB2、分析下面程序段完成的功能是什么? MOV CX,10L1: MOV AH,1INT 21HPUSH AX LOOP L1MOV CX,10L2: POP DX MOV A
16、H,2INT 21HLOOP L2 3、分析下面程序段完成的功能是什么? MOV CH,4ROTATE: MOV CL, 4 ROL BX,CL MOV AL, BLAND AL,0FH ADD AL,30HCMP AL, 3AHJL PRINTITADD AL,7 PRINTIT : MOV DL, ALMOV AH,2INT 21H DEC CHJNZ ROTATE 4、分析下面程序段完成的功能是什么? MOV CX,10LEA BX,BUF ;字符串 BUF 中存放有 10 个大、小写字母K2: MOV AL,BXCMP AL, ZJBE K1SUB AL,20HMOV BX,ALK1:
17、INC BXLOOP K2 5、分析下面程序段的功能DATA SEGMENTS9 DB 0,1 ,2,3,4,5,6,7,8,9DATA ENDSLEA SI,S9LEA DI,S9+1MOV CX,5LOP: MOV AL,SIXCHG AL,DIMOV SI,ALADD SI,2ADD DI,2LOOP LOP上述程序段运行后,S9 开始的 10 个字节存储单元内容是什么?六、编程题1请编写程序实现字符串的移动:将字符串 STR1 移动到 STR2 的位置。DATA SEGMENTSTR1 DB Please Move the string to String2. STR2 DB 34 dup(0)DATA ENDS 2已知 GRA 数组中存放着 10 个学生的成绩,试编程实现以下功能:统计不及格的人数存放在 COUNT 单元中并计算平均成绩存放在 AVG 单元中。DATA SEGMENTGRA DB 76,68,54,80,45,92,63,58,94,85AVG DB 0COUNT DB 0DATA ENDS
限制150内