




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2017汇编语言复习提纲一、考试题型:1、选择题(20分,每题1分)2、填空题(20分,每空2分)3、程序填空题(24分,每空3分)4、程序分析题(16分,每题4分)5、编程题(20分,3道题)二、考试范围与考试形式: 教材第19章,笔试,闭卷考试时间:2017年6月9日(16周周五)上午8:10-10:10三、考试要点:第一章 1、十进制、二进制、十六进制的相互转换; 2、位、字节与字的概念;3、ASCII码与BCD 码的特点。(常用数字、字母及回车换行空格符的ASCII码各是多少?)第二章 1、8086CPU内部结构及总线宽度(地址总线宽度和数据总线宽度)2、8086CPU有哪些寄存器,寄存器的位数、名称及作用;标志寄存器各个位的名称。3、内存单元的地址与内容; 物理地址的形成与存储器分段结构,逻辑地址与物理地址的关系,段的划分条件及段的大小要求。第三章 1、常用的与数据有关的寻址方式,包括寻址方式的名称、表示及物理地址的计算方法2、常用汇编指令的格式和功能数据传送类指令MOV、LEA、IN/OUT、PUSH/POP、CBW、CWD、XLAT、XCHG 算术运算类指令ADD、ADC、INC、SUB、SBB、DEC、CMP、MUL、IMUL、DIV、IDIV 逻辑运算与移位 AND、OR、XOR、TEST、SHL、SHR、ROR、ROL 转移指令 JMP、JNZ/JZ、JG/JL、JBE/JAE、JS/JNS、JC/JNC 串操作指令 REP 、 REPZ、MOVSB、CMPSB、STOSB、STD、CLD循环指令 LOOP、LOOPNZ子程序调用与返回 CALL、RET中断调用与返回 INT、IRET第四章 1、常用伪指令的格式与用法SEGMENTENDS、ASSUME、END、DB、DW、LABEL、DUPOFFSET、SEG、TYPE、LENGTH、SIZE、PTR、EQU、ORG、$2、汇编语言的上机过程及各个过程中产生的文件后缀名;源程序的基本结构3、debug常用命令的功能及用法(R、D、E、A、U、T、G、P);要明白Debug中使用命令后显示各栏内容的含义。第五章 1、循环程序结构:循环条件的控制,LOOP指令的用法2、分支程序结构:条件转移指令的用法,分支顺序的安排,分支的汇合第六章 1、子程序定义:PROCENDP2、子程序的调用与返回3、子程序参数传递第七章 1、宏定义:MACROENDM,宏调用与宏展开2、LOCAL伪指令第八章 1、用IN/OUT直接读取CMOS RAM的内容2、中断源与中断向量;中断向量表;如何改写中断向量第九章 1、键盘的数据端口号、显示器显示的原理、文本方式下要显示字符对应显存中几个字节的内容。2、常用BIOS和DOS中断(INT 10H INT 21H)INT 21H: 输入字符的1号功能调用、显示字符的2号功能调用、显示字符串的9号功能调用、输入字符串的0AH号功能调用INT 10H:光标定位的2号功能调用、实现清屏的功能调用汇编语言复习题1一、单选题1. 数字1的ASCII码值是( )。C A. 1 B. 30H C. 31H D. 20H2ASCII码字符使用 ( ) 位进行编码。B A. 3 B. 7 C. 8 D. 163. 汇编语言源程序经过汇编后产生( )文件。B A. .ASM B. .OBJ C. .EXE D. .DOC4汇编语言源程序是( )文件。B A. .EXE B. .ASM C. .OBJ D. .DOC5. 汇编语言源程序中定义段的伪指令是( )。AA. SEGMENT.ENDS B. PROC.ENDP C. MACRO.ENDM D. SEGMENT.END6汇编语言源程序中定义过程的伪指令是( )。BA. SEGMENT.ENDS B. PROC.ENDP C. MACRO.ENDM D. SEGMENT.END7. 8086CPU的地址总线宽度为( )。CA. 8 B. 16 C. 20 D. 328. 8086CPU的数据总线宽度为( )。C A. 8 B. 10 C. 16 D. 209. 下列哪个寄存器可拆分成2个8位寄存器( )。B A. BP B. BX C. CS D. IP10. 8086CPU提供了( )个16位寄存器。C A. 8 B. 12 C. 14 D. 2211. DEBUG调试程序时查看寄存器内容的命令是( )。DA. D B. E C. U D. R12DEBUG调试程序时查看内存单元内容的命令是( )。DA. R B. E C. U D. D 13. 下列哪个寄存器用来指示当前栈顶的偏移地址( )。AA. SP B. BX C. BP D. IP 14. 下列地址信息与4015H:000FH确定的内存地址不同的是( )。CA. 4013H:002FH B. 4010H:005FH C. 4000H:005FH D. 4015FH15. 下列哪个寄存器在编程时不能用来保存内存单元的偏移地址( )。BA. DI B. CX C. BX D. SI16. 指令 MOV AX, BX 中源操作数的寻址方式是 ( )。BA. 直接寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 寄存器相对寻址17. 指令 MOV AL,STRNG SI 中源操作数的寻址方式是 ( )。DA. 直接寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 寄存器相对寻址18 在8086微机的输入输出指令中,可直接由指令指定的I/O端口号有 ( )个。CA. 16 B. 64 C. 256 D. 21619. 标志寄存器中下列哪个位是中断标志位( )。DA. CF B. OF C. DF D. IF20标志寄存器中下列哪个位是方向标志位( )。CA. CF B. OF C. DF D. IF21. 设SP初值为4000H,执行指令“ POP AX ”后,SP的值是( )。AA.4002H B. 3FFEH C. 3998H D. 4001H22. 设SP初值为4000H,执行指令“ PUSH AX ”后,SP的值是( )。AA. 3FFEH B. 3FFFH C. 3998H D. 4002H23. 在内存分段管理中,8086CPU能访问到的最小段空间是( )。AA. 16 B B. 16KB C. 64KB D. 64B24. 在内存分段管理中,8086CPU能访问到的最大段空间是( )。CA. 16 B B. 16KB C. 64KB D. 64B25. 8086CPU允许有( )个中断源。DA. 0 B. 16 C. 64 D. 25626. Debug加载程序后查看寄存器内容如下,则该程序第一条指令的起始地址是( )。D ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0001A. 00001H B. 0b2d1H C. 0b3d1H D. 0b3e1H27. 下列数据段中内容如下,则与符号COUNT等价的值是( )。DBUF DB 2 DUP(0,2 DUP (1,2,3),3)COUNT EQU $ - BUF A. 3 B. 5 C. 12 D. 1628. mov cx,0 s: add ax,bx loop s 以上指令序列执行后add ax,bx指令被执行了( )次。AA. 65536 B. 65535 C. 1 D. 029. 宏定义体内有标号,程序中要多次调用该宏,则宏定义体内必须使用( )。CA. MACRO B. XALL C. LOCAL D. INCLUDE30. 下列对于Intel8086cpu标志寄存器的说法正确的是( )。DA. 无符号数运算的进位情况由of位记录,有符号数运算的溢出情况由cf位记录。B. cpu执行每一条指令都会改变标志寄存器的内容。C. 当前指令对flags的影响,不会为后续指令的执行提供依据。D. 并不是所有的条件转移指令都要参考标志寄存器中的相关标志位。 二、填空题设 (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,81HADD BL,BLADC BL,BL7、下面的程序执行后,(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 ax8、分配给中断类型号1CH在中断向量表中的物理地址为 00070H 。9、定时器中断类型号为08H,则其中断向量在中断向量表中的物理地址为 00020H 。10、若机器进行有符号数运算,则执行下列指令后,(OF)= 0 。MOV AL, 0F0H ADD AL, 78H11、若机器进行有符号数运算,则执行下列指令后,(OF)= 1 。MOV AL, 0F0H ADD AL, 88H12、在文本方式下,对应显示屏幕上的每个字符,在显存中由 2 个字节表示。13、若给定段地址为0010H,仅通过变化偏移地址寻址,则CPU的寻址范围为00100H到_100FFH_(请写出物理地址)。 14、写出从端口25H读入一个字节数据的指令 IN AL, 25H 。15、段地址为1000H,若将内存空间10000H1FFFFH当作栈使用,初始化栈为空,那么寄存器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中的二进制数转换为十六进制数(字母用大写AF)并显示的程序源文件BINIHEX.ASM,请阅读并完成该程序。 START : MOV CH, 4 bx为16位,bx要循环4次,用ch来计次数ROTATE: MOV CL, 4 ROL BX, CL MOV AL, BL bx循环左移后,原来的高四位变为低四位,把bl 的值送给al, 以免后面的操作影响bx 的值 AND AL, 0FH 与0fh 相与,只保留低四位 ADD AL, 30H 转换为 ASII 码 CMP AL, 3AH ASII码大于 3Ah 则al 的值大于 9,JL PRINTIT 若小于3Ah, 直接输出 ADD AL, 07H ASII码大于3Ah, A的ASII码为41h, . 所以要加上7, 可以输出相应的ABCDPRINTIT : MOV DL, AL MOV AH, 02H INT 21H DEC CH JNZ ROTATE ch为零时跳出循环 MOV AH, 4CHINT 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 ;子程序结束四、程序分析题1、已知数据段中ARRAY是字符串首地址、COUNT是字符串的长度,ARRAY和COUNT均定义为字节类型。分析下面程序段完成的功能是什么? MOV AL, 20H MOV CH, 0 MOV CL, COUNT CLD LEA DI, ARRAY REP STOSB 答: 用空格符(20H)清除某一字符区 。2、分析下面程序段完成的功能是什么? MOV CX, 10 L1: MOV AH, 1 INT 21H PUSH AX LOOP L1 MOV CX, 10L2: POP DX MOV AH, 2 INT 21H LOOP L2 答: 把输入的字符逆向输出 。3、分析下面程序段完成的功能是什么? MOV CH, 4ROTATE: MOV CL, 4 ROL BX, CL MOV AL, BL AND AL, 0FH ADD AL, 30H CMP AL, 3AH JL PRINTIT ADD AL, 7PRINTIT: MOV DL, AL MOV AH, 2 INT 21H DEC CH JNZ ROTATE 答: 二进制数(BX)到十六进制数转换并显示 。4、分析下面程序段完成的功能是什么?MOV CX, 10 LEA BX, BUF ;字符串BUF中存放有10个大、小写字母 K2: MOV AL, BX CMP AL, ”Z” JBE K1 SUB AL, 20H MOV BX, AL K1: INC BX LOOP K2 答: 把小写字母变为大写字母 。5、分析下面程序段的功能 DATA SEGMENT S9 DB 0,1,2,3,4,5,6,7,8,9 DATA ENDS LEA SI,S9 LEA DI,S9+1 MOV CX,5 LOP: MOV AL,SI XCHG AL,DI MOV SI,AL ADD SI,2 ADD DI,2 LOOP LOP 上述程序段运行后,S9开始的10个字节存储单元内容是什么? 答: 01 00 03 02 05 04 07 06 09 08 。 五、编程题1、请编写程序实现字符串的移动:将字符串STR1移动到STR2的位置。DATA SEGMENT STR1 DB Please Move the string to String2. STR2 DB 34 dup(0) DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA START:mov ax, data mov ds, ax mov es, ax lea si, STR1 lea di, STR2 mov cx, 34 cld rep movsb mov ah, 4ch int 21h CODE ENDS END START2、已知GRA数组中存放着10个学生的成绩,试编程实现以下功能:统计不及格的人数存放在COUNT单元中并计算平均成绩存放在AVG单元中。DATA SEGMENTGRA DB 76,68,54,80,45,92,63,58,94,85 AVG DB 0 COUNT DB 0 DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART:main proc farpush dssub ax, axpush axmov ax, datamov ds, axmov ax, word ptr grade ;数组grade的首字call unpasscall averagemov ax, 4chint 21hmain endpunpass proc near ;计算不及格人数mov cx, 10 ;判断10次mov dl,0 ;不及格的人数mov si,0 ;变址指针遍历grade数组mov bl,60 s: cmp gradesi, bljl p1jmp p2p1: inc dlp2: inc siloop smov count, dlretunpass endpavrage proc nearsub ax, axmov cx, 10mov bx, 0mov dx, 0 ;总成绩a1: mov al, GRAbxcbwadd dx, axinc bxloop a1mov ax,dxmov bl,10div blmov avg, almov ah, 4chint 21hretavrage endpcode endsend start汇编语言复习题2一、选择题1. 下面关于汇编语言源程序的说法中正确的是( )。B A. 必须要有堆栈段 B. 一个程序可以有多个代码段C. 必须要有数据段 D. 只能有一个数据段 2. 在汇编语言程序开发中,一般要按顺序经过( )过程。Ba. 用文字编辑程序编写源程序 b. 用连接程序LINK连接程序c. 用MASM宏汇编程序,编译成目标程序d. 用DEBUG程序调试程序 A. abcd B. acbd C. adcb D. adbc 3. 汇编语言编译程序MASM.EXE(编译器)编译的对象是( )文件。CA. .EXE B. .OBJ C. .ASM D. .DOC 4. 汇编语言源程序经过MASM汇编后产生( )文件。C A. .EXE B. .ASM C. .OBJ D. .DOC 5. DEBUG调试程序时查看内存单元内容的命令是( )。A A. D B. R C. A D. E 6. DEBUG调试程序时查看寄存器内容的命令是( )。B A. D B. R C. U D. A 7. 8086CPU地址总线宽度为( )位。CA. 8 B. 16 C. 20 D. 32 8. 8086CPU数据总线宽度为( )位。BA. 8 B. 16 C. 20 D. 32 9. 1个CPU的寻址能力为32KB,那么它的地址总线宽度为( )。B A. 13 B. 15 C. 18 D. 32k 10. 汇编语言源程序中定义段的伪指令是( )。D A. REPTENDM B. PROCENDP C. MACROENDM D. SEGMENTENDS 11. 汇编语言源程序中定义宏的伪指令是( )。C A. REPTENDM B. PROCENDP C. MACROENDM D. SEGMENTENDS 12. 对于下列程序段: AGAIN: MOV AL, SI MOV ES: DI, AL INC SI INC DI LOOP AGAIN把 sI 中的内容传送给 ES:DI 也可用( )指令完成同样的功能。AA. REP MOVSB 串传送 B. REP LODSB 从串取C. REP STOSB 存入串 D. REPE SCASB 串扫描 13. 设SP初值为2000H,执行指令“ PUSH AX ”后,SP的值是( )。 CA. 1998H B. 1FFFH C. 1FFEH D. 2002H14. 设SP初值为2000H,执行指令“POP BX”后,SP的值是( )。D A. 1998H B. 1FFFH C. 1FFEH D. 2002H 15. 执行下列指令序列后,正确的结果是( )。A MOV AL, 81H al = 81hADD AL, AL al = 81h + 81h = 02h, cf = 1ADC AL, AL 02h + 02h + cf = 05hA. AL=05H B. AL=204H C. AL=04H D. AL=205H 16. 下列指令被编译时会出错的是( )mul的操作数不能为立即数。DA. MUL BX B. MUL CL C. MUL DAT1 D. MUL 56 17. 与MOV BX,OFFSET VAR指令完全等效的指令是( )。BA. MOV BX,VAR B. LEA BX,VARC. LDS BX,VAR D. MOV BX,SEG VAR 18. 指令指针寄存器是( )。CA. BP B. SP C. IP D. PSW 19. 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( )。BA. AX,BX,CX,DX B. BX,BP,SI,DIC. SP,IP,BP,DX D. CS,DS,ES,SS20. 下列数据段中: BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $ - BUF1符号COUNT等价的值是( )。B A. 6 B. 18 C. 16 D. 8 其中 2 DUP(1,2)占用了2 * 2 = 4个字节,总共占用了 3 * 6 = 18个字节。 21. 设数据段中已有: DA1 DB 12H,34H DA2 DW 56H,78H下面有语法错误的语句是( )。CA. MOV AL, DA1 B. MOV WORD PTR DA1, AXC. MOV DA11, AX D. MOV BYTE PTR DA21, AL 22. 指令 MOV BYTE PTR BX+SI , 00H 中目的操作数的寻址方式是 ( )。DA. 立即寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 基址变址寻址 23. 指令 MOV ES: BX , AL 中目的操作数的寻址方式是( )。CA. 直接寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 基址变址寻址 24. 条件转移指令JB产生程序转移的条件是( )A A. CF=1 B. CF=0 C. CF=1和ZF=1 D. CF=1和ZF=025. 若执行SAL SI,CL后能将SI的内容乘以8,则(CL) ( )。BA. 2 B. 3 C. 4 D. 826. 编辑汇编语言源程序时,对于注释语句必须用英文输入法中的( )来标示。BA. : B. ; C. , D. .27. 将AL高4位清0,应执行的指令是( )。BA. AND AL,0F0H B. AND AL,0FH C. OR AL,0FH D. TEST AL,0FH 28. 若程序中定义了26B的数据段data,那么程序载入内存,该 data段实际占用的内存空间是( )。C 16的倍数A. 16 B B. 26 B C. 32 B D. 64KB 29. 在8086 CPU系统中一个段的容量最小为( )。AA. 16B B. 64KB C. 512KB D. 1KB 有数据时最小为16B,没数据时最小为0 30. 下列地址信息与0020H:03EFH确定的内存地址不同的是( )。B A. 5EFH B. 203H:00EFH C. 005EH:000FH D. 0002H:05CFH A C D 对应的物理地址都是5EFH二、填空题 1、完成下列数制转换:11101010B = 234 D = EA H。 2、在存储器分段管理中,物理地址需要_ _2_ 个16位寄存器来存储。 3、对于指令FEES DW 100 DUP(0) ,LENGTH = 100 ,SIZE = 200B 。 4、设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)= 3280H。下列指令分别执行后,IP的值各是多少? (1)JMP BX ; IP = _ 1256h_ 。 (2)JMP TABLEBX ; IP = _3280H_。 5、设(DS) = 2000H, 有下列数据段,请用十六进制写出下列各字节单元的内容: ORG 2100H TABLE DB 10, 3*5, 10H 占3个字节 ADDRESS DD TABLE DD占4个字节,地址2000h:2100hARRAY DW 2 DUP (3827H, ?) 占8个字节 (1) (2100H) = _0AH_;(2) (2103H) = _00H_; (3) (2106H) = _20H_;(4) (210CH) = _38H_。这里的DS=14F8H,(2106H)=14,题目DS=2000H,所以(2106H)=20。 6、已知X= -38D,Y= -64D,则 X-Y补 = _1AH_(结果用十六进制表示)。 7、设 (DS)=2000H, (ES)=3000H,(SS)=4000H,(BX)=1000H, (BP)=1000H,(SI)=0001H,(DI)=0002H,(21000H)=1234H, (21002H)=5678H,(31000H)=9ABCH, (31002H)=0DEF0H,(41000H)=3456H,(41002H)=789AH 计算下列各指令中源操作数的物理地址,并指出指令执行后AX寄存器的内容。 (1) MOV AX, ES:1000H; 物理地址PA = 31000H ;(2) MOV AX, BP ; 物理地址PA = 21000H ;(3) MOV AX, BXSI ; 物理地址PA = 31001H ,(AX)= 9AH 。8、计算机中8位二进制有符号数(含一位符号位)的补码表示范围是 -128127 。9、若机器进行有符号数运算,执行指令:MOV AL, 0F0H ADD AL, 78H 则ADD指令执行后:(CF)= 1 ,(OF)= 0 。 10、8086CPU允许有 256 个中断源,其中定时器中断的中断类型号为 08H ,在中断向量表中N类型对应中断向量的地址为 N4 。三、程序分析题 1、阅读下面程序段,回答问题。 A DB 0F8H B DB 3 DUP(?) LEA DI,BMOV CX,3MOV AL,A LOP: SAR AL,1 MOV DI ,AL INC DI LOOP LOP 上述程序段运行后,从B单元开始依次存放的数据是多少? 答:FC FE FF F8H = 1111 1000右移一位变为 1111 1100 = FC,再右移一位变为 1111 1110 = FE,再右移一位变为 1111 1111 = FF 2、分析下面程序段完成的功能是什么? ;(DX:AX)联合存放了一个32位数据 MOV CL, 4 SHL DX, CL DL=*0000 MOV BL, AH SHL AX, CL AL=*0000 SHR BL, CL BL即AH的内容,AH=0000*,四个星号为原来AX的高四位 OR DL, BL 答:功能:把ax的高四位写入到 dx 的低四位 3、下面程序通过子程序调用,将数据段中字数组AR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论