1、一、单项选择题1 .完成将累加器AX 清零, 下面错误的指令是(C ) A .SUB AX, AX B .XOR AX, AX C .OR AX, 00H D .AND AX, 00H 2 .设DS = 5788H , 偏移地址为94H , 该字节的物理地址是(B ) A .57974H B .57914H C .5883H D .58ECH 3 . 指令的操作数中, 允许出现表达式, 例如BUF1 与BUF2 均为变量名, 下面指令中语法正确的是( D) A .MOV AX,BUF1 * BUF2 B .MOV AX,BUF1/ BUF2 C .MOV AX,BUF1 + ES:BUF2 D
2、 .MOV AX,BUF2 - BUF1 4 . MOV AL, 80H MOV CL, 2 SAR AL,CL 上述指令序列执行后, 结果是( ) A .AL = 40H B .AL = 20H C .AL = 0C0H D .AL = 0E0H 5 .在执行POP BX指令, 寻找目的操作数时, 段地址和偏移地址分别是( ) A .无段地址和偏移地址 B .在DS 和BX 中 C .在ES 和BX 中 D .在SS 和SP 中6 .在下列段寄存器中, 代码寄存器是( ) A .ES B .CS C .DS D .SS 7 .执行下面的程序段后, (AX) = ( ) TAB DW 1 ,
3、2 , 3 , 4 , 5 , 6 ENTRY EQU 3MOV BX, OFFSET TAB ADD BX, ENTRY MOV AX, BX A .0003H B .0300H C .0400H D .0004H 8 .下面指令中影响状态位CF 的指令是( ) A .INC AX B .DEC AX C .NOT AX D .NEG AX 9 .判当CX = 0 时, 转ZERO 执行的错误指令是( ) A .CMP CX, 0 B .MOV AX,CX JZ ZERO JZ ZERO C .OR CX, CX D .JCXZ ZERO JZ ZERO 10 .执行1 号DOS 系统功能调
4、用后, 从键盘输入的字符应存放在( ) A .AL 中 B .BL 中 C .CL 中 D .DL 中11 .设物理地址(10FF0H) = 10H , (10FF1H) = 20H, (10FF2H) = 30H , 如从地址10FF1H 中取出一个字的内容是( ) A .1020H B .3020H C .2030H D .2010H 12 .完成同指令XCHG AX ,BX 相同功能的指令或指令序列是( ) A .MOV AX,BX B .MOV BX ,AX C .PUSH AX D .MOV CX, AX POP BX MOV AX,BX MOV BX ,CX 13 .十六进制数88
5、H, 可表示成下面几种形式, 请找出错误的表示() A .无符号十进制数136 B .带符号十进制数- 120 C .压缩型BCD 码十进制数88 D .8 位二进制数- 8 的补码表示14 .指令指针寄存器是( ) A .IP B .SP C .BP D .PSW 15 .DA BYTE EQU THIS BYTE DA WORD DW AB,CD,EF,GH . . . . . . . . MOV AL , DABYTE + 3 MOV AH, BYTE PTR DAWORD + 4 上述二条传送指令执行后AX 中的内容是( ) A .DE B .HC C .CF D .FC 16 .已定
6、义FEES DW 100 DUP(0) , 则指令MOV CX , SIZE FEES 的等效指令是( ) A .MOV CX, 100 B .MOV CX, 200 C .MOV CX, 400 D .MOV CX, 100 DUP( 0) 17 .使状态标志位CF 清零的错误指令是() A .OR AX, AX B .SUB AX, AX C .MOV CF, 0 D .CLC 18 .设SP = 1110H , 执行PUSH AX 指令后, SP 的内容为( ) A .SP = 1112H B .SP = 110EH C .SP = 1111H D .SP = 110FH 19 .当执行
7、指令ADD AX, BX 后, 若AX 的内容为2BA0H , 设置的奇偶标志位PF = 1 ,叙述正确的是( ) A .表示结果中含1 的个数为偶数 B .表示结果中含1 的个数为奇数C .表示该数为偶数 D .表示结果中低八位含1 的个数为偶数20 .完成将累加器AL 清零, 并使进位标志CF 清零, 下面错误的指令是( ) A .MOV AL, 00H B .AND AL , 00H C .XOR AL ,AL D .SUB AL, AL 21 .完成对字单元BUF 的内容加1 运算, 下面错误的指令是( ) A .MOV BX,BUF B .MOV BX , OFFSET BUF IN
8、C BX INC WORD PTRBX MOV BUF ,BX C .MOV BX,BUF D .MOV BX , 0 INC WORD PTRBX INC WORD PTR BUF BX 22 .完成对寄存器BX 的内容求补运算, 下面错误的指令是( ) A .NEG BX B .NOT BX INC BX INC BXC .XOR BX , 0FFFFH D .MOV AX, 0 INC BX SUB AX,BX 23 .MOV AL , 79 ADD AL, 0B1H 指令执行后, 设置的标志位CF 和OF 的值是( ) A .CF = 0 OF = 1 B .CF = 1 OF = 1
9、 C .CF = 0 OF = 0 D .CF = 1 OF = 0 24 .XOR AH , AH MOV AL , 90H CWD 执行上述指令后, 结果是( ) A .DX:AX = 0000: FF90H B .DX:AX = FFFF: 0090H C .DX:AX = 0000 :0090H D .DX:AX = FFFF: FF90H 25 . DABY1 DB 12H, 34H , 56H , 78H DB - DABY1 DABY2 DB 10H DUP (1 , 2 , 3 ) MOV DX, SIZE DABY1 ADD DX, WORD PTR DABY1 + 4 上述
10、指令序列执行后, DX 的内容是( ) A .05H B .1005H C .0105H D .0202H 26 . 执行下列指令序列后, 正确的结果是( ) MOV AL , 81H ADD AL, AL ADC AL, AL A .AL = 05H B .AL = 204H C .AL = 04H D .AL = 205H27 .下列指令执行后总是使CF = 0 ,OF = 0 的是() A .AND B .NEG C .NOT D .INC 28 .可用作寄存器间接寻址或基址、变址寻址的地址寄存器, 正确的是( ) A .AX,BX ,CX, DX B .DS, ES,CS, SS C
11、.SP ,BP, I P,BX D .SI , DI ,BP ,BX 29 .汇编源程序出现语法错误的指令有(D) A .MOV BX + SI , AL B .MOV AX, BP + DI C .MOV DS, AX D .MOV CS , AX 30 .下列串操作指令中, 必须同时指明源串和目的串地址的指令是( ) A .STOSW B .LODSW C .SCASW D .CMPSW 31 .设BL 中有一无符号数, 实现把BL 中的数乘以2 , 应选用的指令是( ) A .SHR BL , 1 B .SHL BL, 1 C .SAR BL, 1 D .RCL BL, 1 32 .执行
12、PUSH AX 指令的正确步骤是() A .1 .SPSP - 1 , ( SP )AH B .1 .(SP) AH , SPSP - 1 2 .SPSP - 1 , ( SP )AL 2 .( SP) AL, SPSP - 1 C .1 .SPSP + 1 , ( SP )AH D .1 .(SP) AH , SPSP + 1 2 .SPSP + 1 , ( SP )AL 2 .( SP) AL, SPSP + 1 33 .CF = 1 时转移到目标地址的条件转移指令是(B ) A .JNC B .JC C .JZ D .JS 34 .在执行NEG 指令时, 对标志位CF 有影响, 其影响的
13、规则是( ) A .对正数求补时,CF = 0 B .对负数求补时,CF = 0 C .对非零数求补时, CF = 1 D .对零求补时,CF = 1 35 .用一条指令仅实现将BX + SI = AX 的方法是() A .XCHG AX, BX SI B .MOV AX, BX + SI C .LEA AX,BXSI D .LEA AX, BX SI 36 .选用串操作指令时, 错误的操作是( ) A .置方向标志位 B .根据串操作指令设置重复次数并送入CX C .设置源操作数及目的操作数指针 D .源操作数和目的操作数都可以加段超越37 .用户为了解决自己的问题, 用汇编语言所编写的程序
14、, 称为() A .目标程序 B .源程序 C .可执行程序 D .汇编程序38 .某系列微机对存储器的分段, 如果每一个段最多的字存储单元( 16 位二进制) 是32K , 那么表示段内字节单元偏移地址的二进制位数应是( ) A .20 位 B .16 位 C .15 位 D .12 位39 .下面指令中, 合理而有意义的指令是() A .REP LODSB B .REP SCASB C .REP CMPSB D .REP MOVSB 40 .在汇编语言程序中, 对END 语句的叙述正确的是( ) A .END 语句是一可执行语句 B .END 语句表示程序执行到此结束 C .END 语句表
15、示源程序到此结束 D .END 语句在汇编后要产生机器码41 . 下面所列通用数据传送指令的几种传送中, 错误的传送方式是() A .从累加器到存储器 B .立即数到存储器 C .从寄存器到存储器 D .从存储器到存储器42 .设SP 初值为2000H , 执行指令“PUSH AX”后, SP 的值是( ) A .1FFFH B .1998H C .2002H D .1FFFH 43 .连接两个汇编语言目标程序时, 若其数据段的段名相同, 组合类型为PUBLIC, 定位类型为PARA, 连接后第一个目标程序数据段的起始物理地址是00000H, 长度为1376H, 试问第二个目标程序数据段的起始
16、物理地址是: ( ) A .01377H B .01378H C .01380H D .01400H 44 .条件转移指令JB 产生程序转移的条件是( ) A .CF = 1 B .CF = 0 C .CF = 1 和ZF = 1 D .CF = 1 和ZF = 0 45 .在下列段寄存器中, 代码寄存器是( ) A .ES B .CS C .DS D .SS 46 . 要求将A, B 两个字符的ASCII 码, 41H, 42H 顺序存放在一个字存储单元中, 可选用的语句是() A .DA1 DB AB B .DA1 DW AB C .DA1 DB 0ABH D .DA1 DW 0ABH47
17、 .设AL = 20H, SI = 0500H , DS = 3000H , (30500H) = 0C0H, CF = 1。执行SBB AL, SI 后, 正确的结果是( ) A .AL = 5FH SF = 1 CF = 1 B .AL = 60H SF = 1 CF = 0 C .AL = 5 FH SF = 0 CF = 1 D .AL = 60H SF = 0 CF = 0 48 .设AX = 1000H NEG AX NOT AX 执行上述指令后, 正确的结果是( ) A .AX = 1001H B .AX = 0FFFH C .AX = 1000H D .AX = 0111H 4
18、9 .设AL = 0B4H,BL = 11H, 指令“MUL BL”和指令“IMUL BL”分别执行后OF ,CF 的值为( ) A .OF = 1 , CF = 0 B .OF = 1 ,CF = 1 C .OF = 0 ,CF = 0 D .OF = 0 ,CF = 1 50 .下面的数据传送指令中, 错误的操作是( ) A .MOV SS: BX + DI , 1000H B .MOV DX, 1000H C .MOV WORD PTRBX , 1000H D .MOV DS , 2000H 51 .下面指令执行后, 变量DAB 中的内容是( ) DAW DW 2A05H DAB DB
19、0FAH : MOV AL,BYTE PRT DAW SUB DAB,AL A .0DAH B .0FAH C .0F5H D .0D0H 52 .下面程序段其功能是对32 位数求补, 32 位数已在DX:AX 中, 正确的程序段是( ) A .NGE AX B .NEG AX C .NOT DX D .NOT AX NEG DX NOT DX NOT AX NEG DX ADD AX, 1 ADC DX, 0 53 .在串操作指令前使用重复前缀指令REPE , 终止串的重复操作条件是( ) A .CX = 0 且ZF = 0 B .CX = 0 且ZF = 1 C .CX = 0 或ZF =
20、 0 D .CX = 0 或ZF = 1 54 .执行下列指令后, 正确的结果是( ) MOV AL, 100 MOV BL, - 2 A .AL = 100H B .AL = 64H BL = 02H BL = 0FEH C .AL = 64H D .AL = 100H BL = 82H BL = 0FEH 55 .数据定义如下: BUF1 DB 10 BUF2 DW 20 DUP( ?) 实现将BUF1 单元的内容与BUF2 开始的第三个字节单元内容相比较的指令是( ) A .CMP BUF1 ,BYTE PTR BUF2 + 3 B .MOV AL ,BUF1 CMP AL ,BYTE
21、PTR BUF2 + 2 C .MOV AL, BUF1 D .MOV AL ,BUF1 CMP AL , BUF2 + 2 CMP AL ,BUF2 + 3 56 .判当AX 的内容为负数时, 转MINUS 执行, 下面错误的指令是( ) A .NOT AX B .TEST AX, 8000H JNS MINUS JNZ MINUS C .SHL AX , 1 D .OR AX , AX JC MINUS JS MINUS 57 .下面指令序列执行后, 正确的结果是( ) MOV AL, 0FCH ADD AL ,AL ADC AL , AL A .AL = 0F8H B .AL = 0F8
22、H CF = 1 CF = 0 C .AL = 0 F9H D .AL = 0F9H CF = 0 CF = 1 58 .当一个程序使用DOS 系统功能调用退出用户程序时, 在编写INT 21H 指令前, 应选的指令是() A .MOV AH , 01H B .MOV AX, 4CH C .MOV AH , 4CH D .RET 59 .当一个无符号数大于120时程序转移, 需使用条件转移指令() A .JBE( 或JNA) B .JNBE( 或JA) C .JNB(或JAE) D .JB(或JNAE) 60 .现有一数据定义语句:DA1 DB 35H, 37H 能与上述语句等效的语句或语句序
23、列有( ) A .MOV DA1 , 37H B .MOV WORD PTR DA1 , 3537H MOV DA1 + 1 , 35H C .MOV WORD PTR DA1 ,57 D .MOV DA1 ,5 MOV DA1 + 1 ,7 61 .NUM EQU 80H DA DB 34H . . . . . . AND DA, NUM 上述语句执行后DA 中的内容是( ) A .B4H B .80H C .34H D .062 .下面语句中有语法错误的语句是( ) A .DB 45H B .DW OABCDH C .DW ABCD D .DD AB 63 . MOV CL, 8 ROL
24、AX, CL OR AX ,BX 假设AX = 0012H ,BX = 0034H , 那么上述程序段执行后, AX 中的结果是( ) A .123H B .3412H C .0046H D .0034H 64 .ORG 0030H DA1 DB 0 ,0, 30H DW DA1 数据为3000H 字存储单元的偏移地址是( ) A .0030H B .0031H C .0032H D .0033H 65 .实现将DX:AX 中存放的32 位数扩大四倍, 正确的程序段是( ) A .SHL AX, 2 B RCL AX, 2 ROL DX, 2 SHL DX, 2 C .MOV CX, 2 D
25、SHL AX, 1 LOP : SHL AX, 1 SHL AX, 1 RCL DX, 1 RCL DX, 1 LOOP LOP RCL DX, 1 66 .设数据段中已有: DA1 DB 12H, 34H DA2 DW 56H , 78H下面有语法错误的语句是( ) A .ADR1 DW DA1 B .MOV DA1 + 1 , AX C .MOV BYTE PTR DA2 + 1 , AL D .MOV WORD PTR DA1 + 1 , AX 67 .假定(DS) = 4000H , (DI) = 0100H , ( 40100H) = 55H, ( 40101H) = AAH , 试
26、问执行指令LEA BX, DI 后, (BX) = ( ) A .0100H B .55AAH C .AA55H D .4100H 68 . 设AL = 04H ,BL = 0F8H, 执行IMUL BL 指令后, 结果是( ) A .AX = 0032H B .AX = 00E0H C .AX = 03E0H D .AX = 0FFE0H 69 .已知( IP ) = 1000H , ( SP ) = 2000H, (BX) = 283FH ,CALL WORD PTRBX 指令的机器代码是FF17H, 试问执行该指令后, ( 1FFEH) = ( ) A .28H B .3FH C .00
27、 D .02H 70 .如AX = 1000H NEG AX NEG AX 上述两条指令执行后, AX 的值为( ) A .1001H B .1002H C .1000H D .0F000H 71 .为了使执行串操作指令时, 地址按减量方式处理, 应使用的指令是( ) A .STD B .STI C .CLD D .CLI 72 .测试BL 寄存器内容是否与数据4FH 相等, 若相等则转NEXT 处执行, 可实现的方法是( ) A .TEST BL , 4FH B .XOR BL, 4FH JZ NEXT JZ NEXT C .AND BL, 4FH D .OR BL, 4FH JZ NEXT
28、 JZ NEXT 73 .用来存放下一条将要执行的指令地址的寄存器是( ) A .SP B .IP C .BP D .CS 74 .要使串处理从低地址向高地址进行, 应把标志位置为( ) A .IF = 1 B .TF = 0 C .DF = 1 D .DF = 0 75 .若定义DAT DWA, 则(DAT) 和(DAT + 1 )两个相邻的内存中存放的数据是( ) A .0041H B .4100H C .H D .41H 注选项C .和D .中的表示任意数据。76 .假设VAR 为变量, 指令MOV BX, OFFSET VAR 的寻址方式是( ) A .直接寻址 B .间接寻址 C .
29、立即寻址 D .存储器寻址77 .下列指令中, 不影响标志位的指令是( ) A .SUB BX, BX B .ROR AL , 1 C .JNC Label D .INT n 78 .已知:VAR DW 1 , 2 , + 2 , 5 , 6 若汇编时VAR 分配的偏移地址是0100H, 则汇编后0104H 单元的内容是: ( ) A .6H B .14H C .5H D .16H 79 .下列80X86 指令中, 不合法的指令是( ) A .IN AX, 0378H B .MOV BL, AL C .MOVSB D .SHL AX, 180 .设数据定义如下: ARRAY DW 1 , 2
30、, 3 执行指令ADD SI , TYPE ARRAY 相当于完成下面同等功能的指令是( ) A .ADD SI , 1 B .ADD SI , 2 C .ADD SI , 3 D .ADD SI , 0 二、填空题 1 .在1M 字节的存储器中, 每个存储单元都有一个唯一的 位地址, 称为该物理单元的物理地址。2 .8086/ 8088 CPU 允许的最大存储空间为 , 其地址编号从 到 。3 .MOVS ES: BYTE PTRDI ,DS: SI 完全等价于 。4 .指令中所用到的操作数可存放于 , 或 中。5 .若SP = 0FFFFH, 则指令POP AX 执行后,SP = 。6 .
31、与LOOP NEXT 指令功能等效的两条指令依次是 和 。7 .已知:AX = 4F08H, CF = 0 , CL = 4 , 则RCR AX,CL 指令执行完后AX = H。8 .最常用的循环程序控制方法是 和条件控制法。9 .同一地址即可以看作是 的地址, 也可以看作是 的地址。10 .一个字存入存储器要占有相继的两个字节, 低位字节存入 , 高位字节存入 。11 .DT 伪指令中定义的每个操作占有 字节。12 .对于指令CMP AX, BX; 当AX, BX 为带符号数时, 若AX BX, 则执行后标志位 , 。13 .对于数值回送操作符TYPE、LENGTH、SIZE 之间有如下关系
32、: ( SIZE 变量) = * ( TYPE 变量) 14 .串处理指令规定源寄存器使用SI , 源串在 段中; 目的寄存器使用DI , 目的串必须在 段中。15 .循环程序可由, , , 三部分组成。16 .SUB AL, AH DAS 若指令执行前, AL = 86 , AH = 07;则指令执行后, AL = ,CF = , AF = 。17 .指令分操作码字段和 两部分。码字段指示计算机要执行的操作, 而 则指出在指令操作的过程中所需要的操作数。18 .标号和变量(名字) 均有三种属性, 它们是 、和 、 属性。19 .主程序和子程序的参数传递方法有, , , 三种。20 .对于MO
33、V 指令, 不可以将一个存储单元的内容 另外一个存储单元。21 .执行ADD AX,BX 指令后产生溢出则转移到ERROR 处执行。那么在ADD 指令后, 如AX,BX 中是带符号数时, 应选用的条件转移指令是 , 如是无符号数时, 应选用的条件转移指令是 。三、程序分析题 1 .以BUF 为首址的字节单元中, 存放了COUNT 个无符号数, 下面程序段是找出其中最大数并送入MAX 单元中。 BUF DB5 , 6 , 7 , 58H , 62 , 45H , 127 , . COUNT EQU - BUF MAX DB ? MON BX, OFFSET BUF MOV CX ,COUNT -
34、 1 MOV AL , BX LOP1: INC BX JAE NEXT MOV AL , BX NEXT: DEC CX MOV MAX, AL2 .现有下列数据段: DATA SEGMENT STR1 BD ABCDEFGHIJKL COUNT EQU STR1 BUF DB COUNT DUP( 0) DATA ENDS 下面程序段是实现把STR1 中所有字符逆向传送到BUF 缓冲区(即STR1 中第一个字符送到BUF的最后一个单元, STR1 中最后一字符送到BUF 的第一个单元) 。试把程序中所空缺的指令填上。 MOV SI , OFFSET BUF - 1 MOV DI , OFFSET BUF MOV CX ,COUNT LOOP : MOVSB LOOP LOP 3 .在一字符串中搜索, 当搜索到M, 停止搜索, 将此单元地址存储;当未搜索到M, 也结束工作。 STRING DB THIS IS A EXAMPLE ADDRBF DW ? .MOV AX ,SEG STRING MOV ES ,AX ; 预置参数MOV AL ,M CLD ; 搜索JZ NEXT HLT NEXT: