广东海洋大学汇编语言复习题目答案_第1页
广东海洋大学汇编语言复习题目答案_第2页
广东海洋大学汇编语言复习题目答案_第3页
广东海洋大学汇编语言复习题目答案_第4页
广东海洋大学汇编语言复习题目答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编语言复习提纲一、考试题型:1、选择题(20分,每题1分)2、填空题(10分,每空1分)3、判断说明题(20分,每题2分)4、程序分析题(20分,每题5分)5、程序填空题(20分,每空2分)6、编程题(10分)二、考试范围与考试形式教材第19章,笔试,闭卷三、考试要点:要求熟悉指令功能,能熟练阅读和编写汇编语言源程序。1、汇编语言源程序的结构框架2、汇编语言上机过程及产生的文件3、8086CPU内部寄存器组及地址总线与数据总线宽度4、debug的常用命令(R、D、A、E、U、T、G、P)5、物理地址的形成与存储器分段结构6、与数据有关的寻址方式7、常用指令的格式与功能常用汇编指令数据传送类M

2、OV PUSH POP IN OUT LEA 算术运算类:ADD ADC INC SUB SBB DEC CMP MUL DIV逻辑指令:AND OR XOR TEST SHL SHR ROL ROR 控制转移指令:JMP JNE JBE JL CALL LOOP INT RET常用伪指令:成对出现的伪指令:SEGMENTENDS PROCENDPMACROENDM 假设:ASSUME 数据定义: DB DW LABEL 地址计数器:$ 重复:DUP 结束:END 属性操作符: PTR8、算术指令的执行影响标志寄存器中的条件标志位(CF、OF)9、循环与分支程序结构10、子程序结构11、宏指令

3、定义12、中断源、中断向量表与中断向量的关系13、用IN和OUT指令直接控制硬件14、键盘、CMOS时钟、显示器的工作原理15、常用DOS中断( INT 21H 的1、2、9、10号功能调用)16、常用的BIOS中断(INT 16H的0号功能,INT 10H 的2、3、6、7、9号功能)重点掌握的程序:二、十、十六进制相互转换的程序BCD码转换为十进制的程序发声程序大小写字母相互转换的程序进行累加求和的程序例题5.1 5.3 5.4 5.5 习题 5.21 5.26例题6.3 6.4 6.9 习题 6.4 6.5 6.7 例题7.1 习题 7.1例题8.1 8.5 习题 8.1 8.3 8.9

4、 8.11例题9.5 9.7 9.11 9.14 习题9.3 9.4 9.5 9.6 9.10汇编语言复习题 一、选择题1. 下面关于汇编语言源程序的说法中正确的是 ( B )A. 必须要有堆栈段 B. 一个程序可以有多个代码段 C. 必须要有数据段 D. 只能有一个数据段2. 在汇编语言程序开发中,一般要按顺序经过( B )过程。 a. 用文字编辑程序编写源程序 b. 用连接程序LINK连接程序 .ASM>. OBJ-> . EXE c. 用MASM宏汇编程序,编译成目标程序 d. 用DEBUG程序调试程序 A. abcd B. acbd C. adcb D. adbc3. 汇编

5、语言编译程序MASM.EXE(编译器)编译的对象是( C )文件。A. .EXE B. .OBJ C. .ASM D. .DOC4. 汇编语言源程序经过MASM汇编后产生( C )文件。A. .EXE B. .ASM C. .OBJ D. .DOC5. DEBUG调试程序时查看内存单元内容的命令是( A )A. D B. R C. A D. E6. DEBUG调试程序时查看寄存器内容的命令是( B )A. D B. R C. U D. A 7. 8086CPU地址总线宽度为( C )位。 A、8 B、16 C、20 D、328. 8086CPU数据总线宽度为( B )位。 A、8 B、16 C

6、、20 D、329. 1个CPU的寻址能力为32KB,那么它的地址总线宽度为( B )。 A、13 B、15 C、18 D、32k10. 汇编语言源程序中定义段的伪指令是( 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 中的内容传送

7、给 ES:DI也可用( A )指令完成同样的功能。 A. REP MOVSB 串传送 B. REP LODSB 从串取C. REP STOSB 存入串 D. REPE SCASB 串扫描13. 设SP初值为2000H,执行指令“ PUSH  AX ”后,SP的值是( C )A. 1998H B. 1FFFH C. 1FFEH D. 2002H14. 设SP初值为2000H,执行指令“ POP BX ”后,SP的值是( D )A. 1998H B. 1FFFH C. 1FFEH D. 2002H15. 执行下列指令序列后,正确的结果是( A )MOV  AL,81H al =

8、 81hADD  AL,AL al = 81h + 81h = 02h , cf = 1ADC  AL,AL 02h + 02h + cf = 05h A. AL=05HB. AL=204HC. AL=04HD. AL=205H16. 下列指令被编译时会出错的是( D ) mul的操作数不能为立即数A. MUL BX B. MUL CL C. MUL DAT1 D. MUL 5617. 与MOV  BX,OFFSET VAR指令完全等效的指令是(   B     )。 A、MOV  B

9、X,VAR B、LEA  BX,VAR C、LDS  BX,VAR D、MOV BX, SEG VAR18. 指令指针寄存器是( C )A. BP B. SP C. IP D. PSW 19. 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B )A. AX,BX,CX,DX B. BX,BP,SI,DI C. 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

10、占用了18个字节,其中 2 DUP (1,2)占用了2 * 2= 4个字节,总共占用了3 * 6 = 18个字节21. 设数据段中已有: DA1 DB 12H,34H DA2 DW 56H,78H 下面有语法错误的语句是( C )A. MOV AL, DA1 B. MOV WORD PTR DA1,AX C. MOV DA11,AX D. MOV BYTE PTR DA21,AL22. 指令 MOV BYTE PTR BX+SI , 00H 中目的操作数的寻址方式是 ( d ) A. 立即寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 基址变址寻址 23. 指令 MOV ES: BX ,

11、AL 中目的操作数的寻址方式是 ( c ) A. 直接寻址 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) ( B ) A、2 B、3 C、4 D、8 26. 编辑汇编语言源程序时,对于注释语句必须用英文输入法中的( B )来标示。A. : B. ; C. , D. .27. 将AL高4位清0,应执行的指令是 (   B )  A. AND

12、AL,0F0H   B. AND AL,0FH         C. OR AL,0FH      D. TEST AL,0FH28. 若程序中定义了26B的数据段data,那么程序载入内存,该 data段实际占用的内存空间是( C )。 16的倍数A、 16 B B、26 B C、 32 B D、 64KB29.在8086CPU系统中一个段的容量最小为( A )。 A、16B B、64KB C、512KB D、1KB有数据时最小为16B,没数据时最小为030. 下列地址信息与0020H:03E

13、FH确定的内存地址不同的是( B )。 A、 5EFH B、 203H:00EFH C、 005EH:000FH D、 0002H:05CFH A C D 对应的物理地址都是5EFH二、填空题1、完成下列数制转换:11101010B= D = H2. 在存储器分段管理中,物理地址需要_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 ; I

14、 P=_1256h_(2)JMP  TABLEBX ; IP_3280H_5. 设(DS)=2000H, 有下列数据段,请用十六进制写出下列各字节单元的内容:ORG 2100H 想知道org 是什么?百度一下TABLE DB 10, 3*5, 10H 占三个字节ADDRESS DD TABLE DD占四个字节,地址为2000h:2100hARRAY DW 2 DUP(3827H, ?) 占4个字,8个字节(1) (2100H)=_10_       (2) (2103H)=  _00_ 

15、0;   (3) (2106H)=_20H_       (4) (210CH)= _38H_      这里的DS=14F8H ,(2106H)=14 题目DS=2000H ,所以 (2106H)=206. 已知X= -38D,Y= -64D,则 X-Y补=_1AH _(结果用十六进制表示)7、设 (DS)=2000H, (ES)=3000H,(SS)=4000H,(BX)=1000H, (BP)=1000H, (SI)=0001H,(DI)=0002H

16、,(21000H)=1234H, (21002H)=5678H,(31000H)=9ABCH, (31002H)=0DEF0H,(41000H)=3456H,(41002H)=789AH计算下列各指令中源操作数的物理地址,并指出指令执行后AX寄存器的内容。 (1) MOV AX, ES:1000H ; 物理地址PA=            (2) MOV AX,BP ; 物理地址PA=       (3) MOV AX, BXSI 物理地址PA=

17、        (AX)=       8计算机中8位二进制有符号数(含一位符号位)的补码表示范围是 128127 9. 若机器进行有符号数运算,执行指令:MOV AL,0F0H ADD AL,78H 则ADD指令执行后:(CF)= 1 ,(OF)= 0 想知道结果也可以调试一下看看 10. 8086CPU允许有 256 个中断源,其中定时器中断的中断类型号为 08H ,在中断向量表中N类型对应中断向量的地址为 N × 4 。三、判断下列指令的正误1、MUL AL,

18、BL ( N ) 只有一个操作数2、MOV CS, BX ( n )3、PUSH AL ( N ) PUSH和POP操作都是以字为单位4、SHL AX,CX ( N ) 以为次数要放在cl中5、MOV AH,BYTE PTR SIDI ( N) SIDI两个都为变址寄存器6、 OUT 03FCH, AX ( N )03FCH超过了255,必须用间接寻址,这里间接寻址的寄存器要用DX,Mov dx,03fchOut dx,ax7、 SUB AX,BX ( y )8、 AND AL, 0FH ( y )9、 MOV SI,DI ( n ) 两个操作数不能同时为存储器10、 MOV BX, 0FFH

19、 ( n )11、 MUL 0AH ( n )12、 CALL FAR PTR S ( y )13、 ADD DS, AX ( n )段寄存器不可以用在算术指令中14、 ADD AL,100H ( n )类型不一致15、 MOV BX, BX ( y )16、 INT 1000H ( n )17、 JMP SHORT PTR S ( n )18、 0R AL, 0FFFH ( n ) 19、 CALL BX ( y )20、 IN 03H, AX ( n ) 四、程序分析题1. 阅读下面程序段,回答问题。 A  DB  0F8H B DB  3 DUP(

20、?)LEA  DI,BMOV  CX,3MOV  AL,A LOP: SAR  AL,1 MOV  DI,AL INC  DI LOOP  LOP 上述程序段运行后,从B单元开始依次存放的数据是多少?FCFE FFF8H=1111 1000 右移一位变为 1111 1100 = FC再右移一位变为 1111 1110 = FE再右移一位变为 1111 1111 = FF调试结果:2、分析下面程序段的功能DATA SEGMENTS9 DB 0,1,2,3,4,5,6,7,8,9DATA ENDSLEA SI,S9LE

21、A DI,S9+1MOV CX,5LOP: MOV AL,SIXCHG AL,DIMOV SI,ALADD SI,2ADD DI,2LOOP LOP上述程序段运行后,S9开始的10个字节存储单元内容是什么?01 00 03 02 05 04 07 06 09 083、已知BUF开始的数据区中存放有10个大、小写字母,分析下面程序段完成的功能是什么? MOV  CX,10 LEA  BX,BUF K2:MOV  AL,BX CMP  AL,Z JBE  K1 SUB  AL,20H (20H=32,大小写字母相差32) MOV 

22、; BX,AL K1:INC  BX LOOP  K2 实现功能:把小写字母变为大写字母4. 分析下面程序段完成的功能是什么? ;(DX:AX)联合存放了一个32位数据MOV CL, 4SHL DX, CL DL=*0000MOV BL, AHSHL AX, CL AL=*0000SHR BL, CL BL即AH的内容,AH=0000*,四个星号为原来AX的高四位OR DL, BL 功能:把ax的高四位写入到 dx 的低四位5、分析下面程序段完成的功能是什么? MOV CX,10LOP1:MOV AH,1 INT 21H PUSH AX LOOP LOP1 MOV CX,1

23、0LOP2: POP DX MOV AH,2 INT 21H LOOP LOP2 功能:把输入的字符逆向输出6、以下是二进制数(bx)到十六进制数转换并显示程序的源文件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码

24、大于 3Ah 则al 的值大于 9,若小于3Ah,直接输出 JL PRINTIT Add al,07h ASII码大于3Ah , A的ASII码为41h, 所以要加上7,可以输出相应的ABCD.PRINTIT : MOV DL, AL Mov ah, 02h INT 21H Dec ch JNZ ROTATE ch为零时跳出循环MOV AH, 4CHINT 21H7、以下是子程序BCDIASC,请阅读程序并完成填空。;功能:将十进制的两位数的BCD码转换为ASCII码并在屏幕中间显示.;参数:(AL)= 十进制的两位数的BCD码,无出口参数BCDIASC : MOV AH, AL MOV CL

25、, 4 shr ah, cl ;将AH的高4位移至低4位 And al, 0fh ;保留AL的低4位 ADD AH, 30H ;转变为ASCII码 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 ;子程序结束,返回主程序8. 下面程序通过子程序调用,将数据段中字数组ARRAY的COUNT个元素求和,并将结果送SUM单元(COUNT、SUM都是字单元),分析这段程序后补充完整程序中的空格部分。MOV B

26、X, OFFSET SUMPUSH BXMOV BX, OFFSET ARRAYPUSH BXMOV BX, OFFSET COUNTPUSH BXCALL SUMPRO ;调用子程序计算.SUMPRO PROC NEARPUSH AXPUSH CXPUSH SIPUSH DIPUSH BPMOV BP, SPMOV SI, BP+ 14       MOV DI, BP+    12 MOV CX, DIMOV DI, BP+   16    

27、  XOR AX, AXNEXT : ADD AX, SILOOP NEXTMOV   DI , AX POP    BP    POP DIPOP SIPOP CXPOP AXRET SUMPRO ENDP 请画出用堆栈传送参数地址时,堆栈最满时的状态。五、编程题1、从BUF1单元开始存放有10个字节的字符串,使用串传送指令编写指令序列将BUF1中的数据复制到BUF2开始的10个字节单元。 lea si,BUF1 ;si的段地址为dslea di,BUF2 ;di的段地址为es mov cx,10 cld rep movsb 2、 编写指令序列,完成用空格符(20H)清除某一字符区的工作,字符区首地址为ARRAY,其长度为COUNT,ARRAY和COUNT均为字节存储单元。 lea si,ARRAYmov al,20hmov cx,10cld rep stosb3 编写一个显示字符串的宏定义PRINT, 字符串以”$”作为结束符号,字符串首地址STRADDR为变元。 PRINT macro STRADDR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论