汇编语言期末复习题
DX:单项选择题 DU:多项选择题 TK:填空题 MC:名词解释 v JD:简答题 CXFX:程序分析题 CXTK:程序填空题 BC:编程题 第1章:基础知识
1、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。 DX A、宏定义,宏调用 B、宏定义,宏展开
C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用
2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。 DX
A、名字项 B、操作项 C、操作数项 D、注释项
3、可屏蔽中断就是它的请求是否被CPU响应要受 ( IF )的控制。 DX
4、使用LINK连接命令,执行后可生成文件的扩展名为( EXE )。 DX
5、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在 堆栈 段中,段地址在 SS 寄存器中。 TK
6、注释项用于说明程序段或是一条和几条指令的功能,一般用 ;(或分号) 表示注释的开始。 TK
7、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送 AH 寄存器后执行INT 21H。 TK
8、通常主程序和子程序间参数传送的方法有三种: 用寄存器传递 、 用存储单元传递、用堆栈传递(顺序可调换)。 TK
9、 中断 是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为 中断源 。 TK
10、在字符串操作指令中,DS∶ SI 指向源串,ES∶ DI 指向目的串。 TK
11、计算机系统通过 接口 与外围设备通信。 TK
12、键盘I/O、显示I/O和打印I/O分别对应 16H 、 10H 和 17H 号中断。 TK
13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。每个字的第一个字节为显示字符的 ASCII码 ,第二个字节为显示字符的 属性 。 TK
14、简述上机运行汇编语言程序的过程。 JD
答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。
15、简述程序中指令和伪指令的区别。 JD
答:能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。
伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令。
16、十六进制数88H,可表示成下面几种形式,请找出错误的表示(④ )。 DX
① 无符号十进制数136 ② 带符号十进制数-120
1
③ 压缩型BCD码十进制数88
④ 8位二进制数-8的补码表示 17、指令指针寄存器是(IP )。 DX
18、汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B) DX A.名字的第一个字符可以是大写英文字母及小写英文字母 B.名字的第一个字符可以是字母、数字及、@、_ C.名字的有效长度≤31个字符
D.在名字中不允许出现$
19、CS寄存器属于( 段寄存器 )。 DX
20、已知物理地址(371F0H)=12H,(371F1H)=34H,(371F2H)=56H,如从地址371F0H中取出一个字的内容是( 3412H )。 DX
21、一个有16个字的数据区,它的起始地址是70A0H∶DDF6H,则这个数据区最末一个字单元的物理地址是( 7E814H )。 DX
22、简述上机运行汇编语言程序的过程。 JD 答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。
第2章:8086/8088的寻址方式和指令系统
1、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] )。 DX 2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。 DX A.1 B.2 C.3 D.由指令长度决定的 3、下列属于合法的指令是( D ) DX
A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],BL 4、若AX=349DH,CX=000FH。则执行指令AND AX,CX后,AX的值是( 000DH )。 DX 5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( 85B92H ) DX 6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) DX A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS,DS,ES,SS 7、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,1 SHL,AX,1 )。 DX 8、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( OF,AF,PF )。 DX 9、设DH=10H,执行NEG DH指令后,正确的结果是( DH=0F0H CF=1 )。 DX 10、下列传送指令中有语法错误的是( A )。 DX
A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX
11、下面指令执行后,改变AL寄存器内容的指令是( D )。 DX
A、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL 12、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,ZF都不确定 )。 DX 13、执行下面指令序列后,结果是( AX=0FF82H )。 DX MOV AL,82H CBW
14、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。 DX A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、LEA BX,VAR
15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是( PARA )。 DX
16、MOV SP,3210H
PUSH AX 执行上述指令序列后,SP寄存器的值是( 320EH )。 DX 17、BUF DW 10H DUP(3 DUP(2,10H),3,5)
2
上述语句汇编后,为变量BUF分配的存储单元字节数是( 100H )。 DX 18、MOV AH,7896H ADD AL,AH
上述指令执行后,标志位CF和OF的值是( CF=1,OF=0 )。 DX 19、完成将带符号数AX的内容除以2的正确指令是( SHR AX,1 )。 DX 20、在汇编语言程序中,对END语句的叙述正确的是( C )。 DX
A.END语句是一可执行语句 B.END语句表示程序执行到此结束
C.END语句表示源程序到此结束 D.END语句在汇编后要产生机器码
21、已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在(数据段中偏移量为3236H的字节)中。 DX
22、下面指令序列执行后完成的运算,正确的算术表达式应是(y=x2-1)。 DX MOV AL,BYTE PTR X SHL AL,1 DEC AL
MOV BYTE PTR Y,AL
23、已知(AX)=1234H,执行下述三条指令后,(AX)= (0000H)。 DX MOV BX,AX NEG BX ADD AX,BX
A.1234H B.0EDCCH C.6DCCH D. 24、将DX的内容除以2,正确的指令是(C)。 DX A.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,1 25、有如下指令序列: DX ORG 40H
DA1 DW 0AB12H,8574H ??
MOV AX,DA1
MOV BX,OFFSET DA1
上述指令执行后,寄存器AX和BX的值分别为( AB12H,40H )。 26、下列数值表达式和地址表达式中,错误的是( D )。 DX A.MOV AL,8*14+4 B.MOV SI,OFFSET BUF+13 C.MOV CX,NUM2-NUM1 D.MOV CX,NUM2+NUM1 27、数据段定义如下: DX X1 DB 10H,50,1 X2 DW 10H,20,3 X3 DD ? COUNT EQU X3-X1
变量COUNT的值是( 9 )。 28、为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是( C )。 DX A、INC CX JZ MINUS C、AND CX,OFFFFH JZ MINUS
B、SUB CX,OFFFFH JZ MINUS D、XOR CX,OFFFFH JZ MINUS
29、AL和VAR字节单元中分别存放一个带符号数,执行CMP AL,VAR时,如AL>VAR,那么溢出位和符号位 的关系是( OF=SF )。 DX
30、下面是关于汇编语言程序中使用RET的描述,不正确的是( C )。 DX
3
A.每一个子程序中允许有多条RET指令。 B.每一个子程序结束之前一定要有一条RET指令。
C.每一个子程序中只允许有一条RET指令。 D.以过程形式表示的代码段,一定有RET指令存在。
31、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是( CX=0或ZF=0 )。 DX
32、用MOV指令将十进制64以组合型BCD码格式送入AX,正确使用的指令是( MOV AX,0604H )。 DX
33、重复前缀指令REP的重复次数由 CX 决定。 TK
34、DR1 DB 10H,30H
DR2 DW 10H DUP(0,2 DUP(2)) ??
MOV BL,LENGTH DR1
MOV CL,LENGTH DR2 请问指令执行后,BL和CL的值分别为 1 和 10H 。 TK
35、设(SP)=100H,(AX)=0FFFFH STC
PUSH AX ADC AX,0 PUSH AX
POP BX 上述程序段运行后,(BX)= 0 ,(SP)= 0FEH 。 CXFX
36、假设数据段定义如下: DA1 DW ’C’,’D’ DA2 DB 18 DUP(?) DA3 DW $-DA2 ??
MOV BX,DA3 MOV AX,DA1
上述指令执行后,BX寄存器中的内容是12H(或18),AH寄存器中的内容是 00H,AL寄存器中的内容是43H 。CXFX
37、现有如下数据段 DATA SEGMENT
ARRAY1 DB 1,26,‘3456’ ARRAY2 DW 7,89H,10 VAL EQU ARRAY2-ARRAY1
DATA ENDS
请问:该数据段已占有 12(或0CH) 字节的存储空间。 CXFX
38、当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是( ④)。 DX
① 表示结果中含1的个数为偶数 ② 表示结果中含1的个数为奇数
③ 表示该数为偶数 ④ 表示结果中低八位含1的个数为偶数
39、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是( C ) DX
4
A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C.指令AND AX,OFH执行后,分离出AL低四位 D.NOT AX,执行后,将AX清0
40、完成对CL寄存器的内容乘以4的正确操作是( C ) DX A.ROL CL,1 B.MUL 4 ROL CL,1
C.SHL CL,1 D.MOV CL,2 SHL CL,1 SHL CL,CL 41、下面各传送指令中,正确的是( C ) DX
A.MOV [DI],[SI] B.MOV[DX+DI],AL C.MOV WORD PTR [BX],0100H D.MOV AL,BX
42、要实现使BETA的值为56,应采用语句为( BETA EQU 56 ) DX 43、REPZ CMPSW指令,重复执行的终止条件是( CX=0或ZF=0 ) DX 44、下面程序段执行后,AL中的内容是( 21H ) DX MOV AX,8833H
ADD AL,AH DAA
45、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是(① )。 DX ① MOV AL,00H ② AND AL,00H ③ XOR AL,AL ④ SUB AL,AL 46、下列指令执行后总是使CF=0,OF=0的是( AND)。 DX 47、完成同指令XCHG AX,BX相同功能的指令或指令序列是(④ )。 DX ① MOV AX,BX ② MOV BX,AX ③ PUSH AX POP BX ④ MOV CX,AX
MOV AX,BX
MOV BX,CX
48、设AH=0,AL=06H,BL=09H,执行指令 ADD AL,BL AAA
之后,其结果应是(AH=01,AL=05 )。 DX
49、设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为(OF=1,CF=1 )。 DX
50、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是(CX=0或ZF=0 )。 DX
51、下面指令中,合理而有意义的指令是(④ )。 DX
① REP LODSB ② REP SCASB ③ REP CMPSB ④ REP MOVSB
52、在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D ) DX A.STOSW B.LODSW C.SCASW D.CMPSW
53、AL=0AH,下列指令执行后能使AL=05H的是( C ) DX
A.NOT AL B.AND AL,0FH C.XOR AL,0FH D.OR AL,0FH 54、DA1 DW‘AB’,‘CD’,‘EF’,‘GH’ ┇
MOV AX,DA1+3
5