汇编语言练习题.doc

上传人:h**** 文档编号:1390903 上传时间:2019-02-23 格式:DOC 页数:13 大小:87.50KB
下载 相关 举报
汇编语言练习题.doc_第1页
第1页 / 共13页
汇编语言练习题.doc_第2页
第2页 / 共13页
汇编语言练习题.doc_第3页
第3页 / 共13页
汇编语言练习题.doc_第4页
第4页 / 共13页
汇编语言练习题.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、一、 单项选择题 (共 20 题) 1对于有符号的数来说,下列哪个值最大( D) A: 0F8H B: 11010011B C: 82 D: 123Q 2下列有关汇编语言中标号的命名规则中,错误的是( D ) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过 31 个字符 C:?和 $不能单独作为标号 D: 号不可位于标号首 3设 A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是 (C )。 A C+D=B B A+D=B C B=D D ACD 4下列四个寄存器中,可作为十六位寄存器的是 (C ) A DL B CL C BP D EBX 5 8088/808

2、6 存储器分段,每个段不超过( D) A.64K个字 B. 32K 个字节 C.1 兆个字节 D.64K个字节 6寻址指令 MOV CX, BX + DI + 20使用的是哪一种寻址方式( B) A:寄存器寻址 B:相对基址变址寻址 C:变址寻址 D:基址变址寻址 7连接程序把汇编语言源程序生成的目标文件 (.OBJ 文件 )转换成 ( B)。 A .OBJ 文件 B .EXE 文件 C .LST 文件 D .CRF 文件 8在程序运行过程中,确定下一条指令的物理地址的计算表达式是 ( A)。 A. (CS)16+(IP) B. (DS)16+(DI) C. (SS)16+(SP) D (ES

3、)16+(SI) 9若 AX= - 15 要得到 AX=15 应执行的指令是( A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 10 8086/8088 系统执行传送指令 MOV时( A ) A.不影响标志位 B.影响 DF 方向标志 C.影响 SF 符号标志 D.影响 CF 进位标志 11 执行下列程序后 , (AL)=(D )H。 DATA SEGMENT TAB DB 0123456789 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX, DATA MOV DS, AX MOV BX,

4、OFFSET TAB MOV AL, 04 XLAT TAB A 04 B 0400 C 33 D 34 12下列指令中操作数在代码段中的是 (A )。 A MOV AL, 25H B ADD AH, BL C INC BYTE PTR 25H D CMP BL, AL 13.若要求一个操作数中的若干位维持不变,若干位置 “1”,可以使用( B) A: NOT B: OR C: AND D: XOR 14下列指令中段默认为堆栈段的是( C ) A.MOV AX, BX+SI+10 B.ADD AX, ES:SI C.SUB BX, BPDI D. MOV DX, 1000H 15 设 BL 0

5、5H,要使结果 BL 0AH,应执行的指令是 ( C)。 A NOT BL B AND BL C XOR BL, 0FH D OR BL, 0FH 16表 示一条指令的存储单元的符号地址称 (A )。 A 标号 B 变量 C 偏移量 D类型 17关于 8086/8088 微机系列,下列说法哪个是正确的( D) A:一个存储单元由 16 个二进制位组成,简称字。 B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 18下列关于堆栈的说法,错误的是( D ) A:以 “先入后出 ”为原则。 B:

6、栈区最高地址单元的前一个单元为栈底。 C:运行中 SP 寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 19 分配给 INT 12H 在中断向量表中的物理地址是 ( D)。 A 12H B 24H C 36H D 48H 20 DOS 调用 INT 21H 的键盘输入功能 1 和功能 8 的区别是 ( B )。 A功能 1 不回显而功能 8 回显 B功能 1 回显而功能 8 不回显 C 功能 1 和功能 8 都不回显 D 功能 1 和功能 8 都回显 二、填空题(共 27 题 )。 (最后二题有 备选答案) 1设一存储单元中的二进制代码是 83H,其对应的一个无符号数是 148 ,

7、一个带符号数是 -108 。 2 8086/8088 系统中, I/O 端口地址范围是 0000H FFFFH。 3 8086/8088 系统中, 段内一个单元相对段的起始地址的距离称为 偏移地 址 , 它小于 64K 。 4 8086/8088CPU 内部用来存放段地址的寄存器有 CS,DS,ES,SS 。 5在 PC 机中,使用 SS 、 SP 合成 20 位的物理地址,用以指向当前堆栈桟顶的位置 。 6一个字单元由二个连续的 字节 单元组成,其中数据的低 8 位存放在 低地址 单元、高 8 位存放在 高地址 单元。 7. 在指令中直接给出操作数的寻址方式称为 立即寻址方式 。 8设 MA

8、SK 为一个变量,在 “MOV AX, MASKSI+BX”指令中,源操作数的寻址方式是 相对基址变址寻址方式 ,其物理地址是 (DS)16+(SI)+(BX)+OFFSET MASK ,目的操作数的寻址方式是 寄存器寻址方式 。 9 若 (SS)=1100H , (SP)=0150H ,那么执行 PUSH EAX 指令后 SP 的内容是 014CH ,再执行 POP CX 指令后桟顶的物理地址是 1114EH 。 10. CPU 执行 “JMP BX”指令只改变 IP ,而不改变 CS 内容。 11执行 CALL NEAR PTR SUBROUT 时,在修改 IP/EIP 内容之前应该 PU

9、SH IP 或PUSH EIP 。 12 STRING DB ABCDEFG COUNT EQU $-STRING COUNT 的值是 7 ,表示的意义是 表示变量 STRING 所分配的字节数 。 13. 数据定义语句: TAB DW 100 DUP(?) 执行 MOV BX, LENGTH TAB指令后, BX 的内容是 100 。 14. 循环程序可由三个部分组成:设置循环初始部分、循环体和 循环控制部分 。 15. 在多个模块中传递参 数的时候,在本模块中要使用另一个模块中的符号要用 EXTRN 伪操作进行说明符号,本模块中的符号要提供给另一个模块使用要用 PUBLIC 伪操作进行说明

10、符号, 16. 宏汇编的三个步骤是: 宏定义 、宏调用和宏展开。 17. 每种类型的中断都由相应的 中断处理程序 来处理。 18下列程序段求数组 FLD 的平均值,结果在 AL 中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 LEA SI,_FLD_ MOV CX, 8 XOR AX, AX R1:ADD AX ,_ SI_ ADD SI, 2 LOOP R1 MOV CL, 8 IDIV CL HLT 19 MOV AX, 1090H SUB AX, 4AE0H JC L1 JO L2 JMP L3 上述程序执行后 AX=

11、_C5BO_,程序转向 _L1_ 20.假设寄存器 AX=1234H, DX=0A000H MOV BX, 0 MOV CX, BX SUB CX, AX SBB BX, DX MOV AX, CX MOV DX, BX 上述程序段执行后 AX=_OEDCCH_ , DX=_5FFFH_ 21 MOV AX, 234H MOV CL, 3 ROL AX, CL DEC AX MOV CX, 4 MUL CX 此段程序执行完后, (AX)= _467CH_ , (CX)= _4_ 22 DA1 DB 83H, 72H, 61H, 94H, 5AH MOV CX, WORD PTR DA1 AND

12、 CX, 0FH MOV AL, DA1+3 SHL AL, CL 上述指令序列执行后, AL=_OAOH_, CL=_03H_。 23.阅读如下程序片段 MOV AL, 4CH MOV BL, 86H ADD AL, BL 执行上述程序片段后,( AL) = 0D2H ,( BL) = 86H , CF= 0 , OF= 0 24以下程序求出首地址为 BUF 的 M 字数组的内容之和。 DATA SEGMENT BUF DW X1,X2,XM COUNT EQU ($一 BUF)/2 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DAT

13、A START:MOV AX, DATA MOV DS, AX MOV BX, OFFSET BUF MOV CX, COUNT MOV AX, 0 LOP1: ADD AX, BX ADD BX, 2 LOOP LOP1 MOV SUM, AX MOV AH, 4CH INT 21H CODE ENDS END START 25以下程序完成将键盘输入的小写字母转换成大写字母并输出显示,直到输入字符 “$”结束。 DATA SEGMENT ERROR DB “INPUT EXCEEDS a z, PLEASE INPUT AGAIN!”,0DH,0AH,$ DATA ENDS CODE SEG

14、MENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX NEXT: MOV AH, 1 INT 21H CMP AL,$ JE EXIT CMP AL, a JB ERR CMP AL,z JA ERR SUB AL, 20H MOV DL, AL MOV AH, 2 INT 21H JMP NEXT ERR: LES DX, ERROR MOV AH, 9 INT 21H JMP NEXT EXIT: MOV AH, 4CH INT 21H CODE ENDS END START 26下面子程序完成把 BX 寄存器内的二进制数用

15、十六进制数的形式在屏幕上显示出来。 BINTOHEX PROC NEAR PUSH CX PUSH AX PUSH DX MOV CH, 4 ROTATE: MOV CL, 4 ROL BX, CL MOV AL, BL 2 ADD AL, 30H CMP AL, 3AH 1 ADD AL, 7H PRINTIT: MOV DL, AL MOV AH, 2 INT 21H 3 JNZ ROTATE POP DX POP AX POP CX RET BINTOHEX ENDP 备选答案: JL PRINTIT AND AL, OFH DEC CH 27下面程序段是判断寄存器 BL 中第 3 位、

16、第 5 位是否同时为 1,如同时为 1,则 AH 置 0,否则 AH 置全 l。 MOV DL, BL NOT DL 2 JZ ZERO MOV AH, 0FFH 1 ZERO: MOV AH, 0 NEXT: 备选答案: JMP NEXT TEST DL, 28H 三、判断题 (在正确的叙述或指令前打 ,错误的题前打 )( 共 20 题 ) ( X ) 1. PUSH 5588H ( X ) 2. MOV DS, 1720H ( X ) 3. ADD AX, CL ( X ) 4. AND AX, DX ( X ) 5. MOV CS, 0600H ( X ) 6. PUSH 074CH (

17、 X ) 7. ADD AX, CL ( X ) 8. OR BX, CX ( V ) 9 IMUL DX ( X ) 10. XOR AL, BX ( X ) 11. MOV DX, BX ( X ) 12. SUB EAX, ECX*10+100 ( X ) 13. MOV DS, 1200H ( X ) 14. XCHG 256, 100H ( V ) 15. OUT DX, AX ( X ) 16. LEA VAR, BP+SI ( X ) 17. NEG 88 ( V ) 18. INC WORD PTR 100H ( V ) 19 IMUL DX ( X ) 20. XOR AL,

18、 BX 四、简答题( 共 4 题 ) 1.标志寄存器: 标志寄存器 :是 8086/088 中唯一按位操作的寄存器,该寄存器为 16 位,有效的标志位共 9位。其中, CF, PF, AF, ZF, SF, OF 为状态标志,用于反映最近一次影响标志位的算术或逻辑运算中运算过程、运算结果的一些性质; TF, IF, DF 为控制标志,用于控制 CPU对某些特定事件的处理方式以及 CPU的工作模式。 2.逻辑地址: 逻辑地址 :由两个 16 位的地址分量构成,其中一个为段基值,另一 个为偏移量,两个分量均为无符号数编码。物理地址 =段基值 16+偏移量 . 3. 下列程序段执行完后, SF、 Z

19、F、 CF、 OF 的内容是什么? MOV BX, 4321H ADD BX, 1234H SF=0 ZF=0 CF=0 OF=0 4. 下列 ASC 码串 (包括空格串 )依次存储在起始地址为 CSTRING 的字节单元中: CSTRING DB PERSONAL COMPUTER 请编写指令将字符串中的第 1 个和第 7 个字符传给 DX 寄存器。 MOV DX, CSTRING MOV DX, CSTRING+6 五、 程序 分析题( 分析程序段总的功能或回答相关问题 或 运行结果 ) (共 14 题 )。 1 阅读如下程序片段 MOV AL, 4CH MOV BL, 0B5H ADD

20、AL, BL 执行上述程序片段后,( AL) = 01H ,( BL) = 0B5H , CF= 1 , OF= 0 2 阅读如下程序片段 MOV AL, 0F3H MOV DL, 0C4H ADD AL, DL AND AL, 0FH 执行上述程序片段后,( AL) = 7H , CF= 0 , OF= 0 , PF= 0 3 阅读如下程序片段 MOV AL, 7EH MOV CL, 04H ROL AL, CL 执行上述程序片段后,( AL) = 0F9H ,( CL) = 04H , CF= 1 , OF= 无意义 4 阅读如下程序片段 MOV AX, 0632H MOV BX, 0C2

21、02H SUB AX, BX INC AX 执行上述程序片段后,( AX) = 4421H ,( CF) = 1 , OF= 0 ,PF= 0 5 阅读如下程序片段,假设 ( DS) =0100H,字节单元( 01024H) =56H,字节单元( 01025H)=28H MOV BX, 0024H LEA BX, BX OR BX, 0 ADC BX, BX 执行上述程序片段后,( BX) = 287AH ,( CF) = 0 , OF= 0 ,PF= 0 6 阅读如下程序片段,假设( SP) =0064H MOV AX, 0001H MOV BX, 0002H PUSH AX PUSH BX

22、 POP AX POP BX 执行上述程序片段后,( AX) = 0002H ,( BX) = 0001H ,( SP) = 0064H 。(CF) = 0 7 DATA SEGMENT TAB DW 1,2,3,4,5 ENTRY DW 2 DATA ENDS MOV BX, OFFSET TAB ADD BX, ENTRY MOV AX, BX MOV CX, TYPE TAB MOV DX, SIZE TAB 执行上述指令后, (AX)= 3 , (CX)= 2 , (DX)= 2 。 8 MOV AX, W IMUL X MOV BX, Y ADD BX, 6 IDIV BX MOV

23、Z, AX MOV R,DX 上述程序段中 X,Y,Z,R,W 均为有符号数的字变量,试说明上述程序段完成什么功能。 求数值表达式的值: (W*X)/(Y+6)Z,余数 R 9 MOV AX, 1234H MOV CL, 8 ROL AX, CL;这条指令执行后, (AX)= 3412H DEC AX ;这 条指令执行后, CF 不变 MOV CX, 4 MUL CX ;这条指令执行后, SF= 1 10 CMP DX, BX JG X JL Y CMP AX, CX JA X X: Y: 有两个双精度数 、 分别存储于 DX、 AX 及 BX、 CX 中,上述程序段完成的功能是什么? 完成的

24、功能是: 如果 .,则转向 X 执行,否则转向 Y执行。 11设有宏定义如下: TRANS MACRO BUF1, BUF2 MOV AX, BUF1 MOV BX, BUF2 MOV BUF1, BX MOV BUF2, AX ENDM 请说明宏指令完成的功能是什么?并将宏调用 TRANS WORD_VAR1, WORD_VAR2 进行宏扩展。 宏定义 完成的功能是: 将两个存储单元 BUF1 和 BUF2 的内容互换。 宏调用 TRANS WORD_VAR1, WORD_VAR2 的宏扩展是 MOV AX, WORD_VAR 1 MOV BX, WORD_VAR 2 MOV WORD_VAR 1, BX MOV WORD_VAR 2, AX 12 分析下面程序段 , 回答指定问题 : XOR AL, AL CALL SUBROUT MOV BL, AL CALL SUBROUT RCR AL, 1 SUBROUT PROC NEAR NOT AL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。