汇编语言试题精选
1. 计算机内表示机器数的常用编码有(补码 )。
2. 已知[-Y]补=7001H,则Y=(8Fff)H。
注意: [-Y]补=7001 ==》[-Y]反=7000 ==》[-Y]=0FFF ==》Y=8FFFH
3. 已知[X-Y]补=7001H,[X+Y]补=0001H,则[2X]补=(7002 )H。
4. 典型的计算机结构包括( CPU,存储器,I/O设备),通过(总线 )连接在一起。
5. 在1M字节的存储器中,每个存储单元都有一个唯一的(20 )位地址,称为该物理单元的物理地址。
6. 指令中所用到的操作数可存放于( 指令中),(存储器)或(寄存器 )中。
7. 对于指令CMP AX, BX;当AX, BX为带符号数时,若AX>BX,则执行后标志位
SF(0 ),OF=(0)。
注意:CMP 指令做减法,AX与BX相运算(AX-BX),当前者大SF和OF 都为0。SF是无符号数相减的溢处,OF 是有符号数相减的溢出
8. 存贮器的地址区域(0~3FFH )为中断向量区。
9. DT伪指令中定义的每个操作数占有(10 )字节。
10. 循环程序可由(初始化 ),(循环体 ),( 循环控制)三部分组成。
11. 子程序的变量传送方式有(寄存器 ),(存储器变量 ),(地址表 ),( 堆栈)等。
12. ORG 100H X=2 REPT 1 DD X X=X+1 ENDM 执行前(DS)=02345H,汇编后生成的代码为: (DD 2 ) (X=3 )
注:1确定次数重复伪指令REPT.ENDM
例13.8缓冲区初始化。
X=0
REPT 3
X=X+1
DB X
ENDM
汇编后:
+ DB 1
+ DB 2
+ DB 3
这里还要注意的是IRP X,〈1,2,3,4,5〉。。。 ENDM 和IRPC X,〈1,2,3,4〉。。ENDM的用法两者是取尖括号中的元素来取代变量X,循环的次数有括号中元素个数决定,唯一区别是,前者是一变量进行取代,后者是一字符进行取代。 13. CPU是通过(读取状态寄存器 )来实现对I/O进行测试检查的。
14. 内中断有三类中断源,分别为(程序指令 ),(除法错 ),(溢出 ).
15. 对于以下宏定
义 BRANCH MACRO X IF ($-X) GE 128 JMP NEAR PTR X ELSE JMP SHORT X ENDIF ENDM 现有以下代码 „ LOOP0: MOV AX,BX BRANCH LOOP0 „ 其中的宏调用展开为: (JMP SHORT LOOPO )
注意:$表示当前位置,注意与IP (下一条指令的地址)区分。此处当前位置与LOOPO 相减为0因此执行ELSE
IF 与ENDIF配对使用,注意宏定义。。MACRO X 和 ENDM 要配对使用。
16. 若(SP)=0FFFFH,则指令POP AX执行后,(SP)=( 0FFFDH )。
注意:POP指令是字操作指令,因此,每次操作之后地址变化量是两个字节。
17. SUB AL,AH DAS 若指令执行前,(AL)=86,(AH)=07;则指令执行后,(AL)=( ),CF=( )AF=( ) 不要求
18. MOV CL,5 SAR [DI],CL 如指令执行前,(DS)=0F800H,(DI)=180AH,(0F980A)=0064H则指令执行后,(0F980A)=(0003h )CF=(0 )。
注意:SAR [DI],CL 将 (DI+DS)储存单元的内容算数右移5位。也就是将
(0F980A)=0064H右移5位0064h=[**************]0B 右移五位于是得到
[**************]1B 最后一次移出的是0因此,CF 是0
19. 已知指令ARRAY DB 2 DUP(1 DUP(3)) 则该指令分配(2 )字节单元, 指令MOV AX,Length ARRAY,执行后,AX=(2 ); 指令MOV AX,SIZE ARRAY,执行后,AX=(2 )。
注意:DUP是反复定义某个变量的指令,该指令可以嵌套定义DUP 前面的数值是重复定义的次数,后面是重复定义的变量。LENGHTH 一般与DUP 定义的变量使用,则是指分配给变量的单元数(即变量个数),对其他情况返回1。SIZE 则是返回变量占用的字节数量。注意与LENGTH 返回的单元数量进行区别。
20. 已知,(AX)=8002H,(BX)=0001H,则,指令MUL BX执行后,AX=(8002 );指令IMUL BX执行后,AX=( 8002)。
21. n位补码的表数范围为:-(2^N )≤N≤+(2^N-1 )。
22. 设(AX)=0304H,(BX)=0FF00H则执行指令 AND AX,BX 后,(AX)=( 0204H)。
23. 已知:[X]补=0075H,[Y]补=0FF8BH,则[X+Y]补=(0 ),[X-Y]补=(EAH)。
24. 8086/8088寄存器组可以分为四类,它们分别是(通用 ),(专用控制 ),(段 ),(指针 )。
25. 外部设备与主机的通信是通过外设接口进行的,接口寄存器根据用途可以分为(数据 ),(状态 ),(控制)。
26. 计算机中的指令由(操作码 )字段和(操作数 )字段两部分组成。
27. ORG 1000H
X DB 12H
Y DW X
Z DD Y
(DS)=3879H, (BX)=1000H, (SI)=0002H
求下列指令执行完后指定寄存器的内容 MOV AX, [1000H] ; (AX)=(0012H ) MOV BX, [BX]; (AX)= ( 0012H)
MOV AX, [BX+SI]; (AX)= ( 0110H)
MOV AX, [Y+1]; (AX)= ( 0110H) LEA DX, X; (DX)= ( 1000H) LDS SI,Y; (SI)= ( 1000H) (DS)= ( 1001H)
28. 已知(SI)=2000H,(BX)=1000H,(DS)=3000H,(33000H)=15981000H,(32000H)=86050F34H,(DI)=4000H,(35000H)=79008A4CH。
求下列指令执行完后CS及IP寄存器的内容
JMP SI;(IP)= (2000H )
JMP [SI];(IP)= (0F34H )
JMP [BX+SI];(IP)=(1000H )
JMP DWORD PTR [BX+DI];(IP)=(8A4CH )
(CS)= (3000H )
29. 已知(BX)=1000H,(DS)=2000H,(21000H)=3000H,(23000H)=4000H, 则 XCHG BX,
[BX] 执行完后
(BX)=(3000H )
((BX))=(1000H )(一个字的内容)
(21000H)=(1000H )(一个字的内容)
30. 已知(SP)=1000H,(SS)=3000H,(31000H)=2000H,(DS)=4000H,(BX)=1200H,则 POP [BX] 指令执行完后
(SP)=(0FFEH )
(41200H)=( 2000H)(一个字的内容)
31. 已知:(AX)=4F08H,(CF)=0,(CL)=4,则 RCR AX,CL指令执行完后 (AX)= ( 04F0H)
(CF)=( 1)
注意:根据题意我们可以得到右移之前的数据是[**************]0B带进位右移4次后的数据是:[**************] 最后一次将原来数值的第四位“1”移入CF 中
32. INT中断指令将CS,IP,PSW(FLAG)压入堆栈的次序依次为(FLAG ) ,(CS ),(IP )。中断向量共有(256 )个。
汇编语言试题精选
1. 计算机内表示机器数的常用编码有(补码 )。
2. 已知[-Y]补=7001H,则Y=(8Fff)H。
注意: [-Y]补=7001 ==》[-Y]反=7000 ==》[-Y]=0FFF ==》Y=8FFFH
3. 已知[X-Y]补=7001H,[X+Y]补=0001H,则[2X]补=(7002 )H。
4. 典型的计算机结构包括( CPU,存储器,I/O设备),通过(总线 )连接在一起。
5. 在1M字节的存储器中,每个存储单元都有一个唯一的(20 )位地址,称为该物理单元的物理地址。
6. 指令中所用到的操作数可存放于( 指令中),(存储器)或(寄存器 )中。
7. 对于指令CMP AX, BX;当AX, BX为带符号数时,若AX>BX,则执行后标志位
SF(0 ),OF=(0)。
注意:CMP 指令做减法,AX与BX相运算(AX-BX),当前者大SF和OF 都为0。SF是无符号数相减的溢处,OF 是有符号数相减的溢出
8. 存贮器的地址区域(0~3FFH )为中断向量区。
9. DT伪指令中定义的每个操作数占有(10 )字节。
10. 循环程序可由(初始化 ),(循环体 ),( 循环控制)三部分组成。
11. 子程序的变量传送方式有(寄存器 ),(存储器变量 ),(地址表 ),( 堆栈)等。
12. ORG 100H X=2 REPT 1 DD X X=X+1 ENDM 执行前(DS)=02345H,汇编后生成的代码为: (DD 2 ) (X=3 )
注:1确定次数重复伪指令REPT.ENDM
例13.8缓冲区初始化。
X=0
REPT 3
X=X+1
DB X
ENDM
汇编后:
+ DB 1
+ DB 2
+ DB 3
这里还要注意的是IRP X,〈1,2,3,4,5〉。。。 ENDM 和IRPC X,〈1,2,3,4〉。。ENDM的用法两者是取尖括号中的元素来取代变量X,循环的次数有括号中元素个数决定,唯一区别是,前者是一变量进行取代,后者是一字符进行取代。 13. CPU是通过(读取状态寄存器 )来实现对I/O进行测试检查的。
14. 内中断有三类中断源,分别为(程序指令 ),(除法错 ),(溢出 ).
15. 对于以下宏定
义 BRANCH MACRO X IF ($-X) GE 128 JMP NEAR PTR X ELSE JMP SHORT X ENDIF ENDM 现有以下代码 „ LOOP0: MOV AX,BX BRANCH LOOP0 „ 其中的宏调用展开为: (JMP SHORT LOOPO )
注意:$表示当前位置,注意与IP (下一条指令的地址)区分。此处当前位置与LOOPO 相减为0因此执行ELSE
IF 与ENDIF配对使用,注意宏定义。。MACRO X 和 ENDM 要配对使用。
16. 若(SP)=0FFFFH,则指令POP AX执行后,(SP)=( 0FFFDH )。
注意:POP指令是字操作指令,因此,每次操作之后地址变化量是两个字节。
17. SUB AL,AH DAS 若指令执行前,(AL)=86,(AH)=07;则指令执行后,(AL)=( ),CF=( )AF=( ) 不要求
18. MOV CL,5 SAR [DI],CL 如指令执行前,(DS)=0F800H,(DI)=180AH,(0F980A)=0064H则指令执行后,(0F980A)=(0003h )CF=(0 )。
注意:SAR [DI],CL 将 (DI+DS)储存单元的内容算数右移5位。也就是将
(0F980A)=0064H右移5位0064h=[**************]0B 右移五位于是得到
[**************]1B 最后一次移出的是0因此,CF 是0
19. 已知指令ARRAY DB 2 DUP(1 DUP(3)) 则该指令分配(2 )字节单元, 指令MOV AX,Length ARRAY,执行后,AX=(2 ); 指令MOV AX,SIZE ARRAY,执行后,AX=(2 )。
注意:DUP是反复定义某个变量的指令,该指令可以嵌套定义DUP 前面的数值是重复定义的次数,后面是重复定义的变量。LENGHTH 一般与DUP 定义的变量使用,则是指分配给变量的单元数(即变量个数),对其他情况返回1。SIZE 则是返回变量占用的字节数量。注意与LENGTH 返回的单元数量进行区别。
20. 已知,(AX)=8002H,(BX)=0001H,则,指令MUL BX执行后,AX=(8002 );指令IMUL BX执行后,AX=( 8002)。
21. n位补码的表数范围为:-(2^N )≤N≤+(2^N-1 )。
22. 设(AX)=0304H,(BX)=0FF00H则执行指令 AND AX,BX 后,(AX)=( 0204H)。
23. 已知:[X]补=0075H,[Y]补=0FF8BH,则[X+Y]补=(0 ),[X-Y]补=(EAH)。
24. 8086/8088寄存器组可以分为四类,它们分别是(通用 ),(专用控制 ),(段 ),(指针 )。
25. 外部设备与主机的通信是通过外设接口进行的,接口寄存器根据用途可以分为(数据 ),(状态 ),(控制)。
26. 计算机中的指令由(操作码 )字段和(操作数 )字段两部分组成。
27. ORG 1000H
X DB 12H
Y DW X
Z DD Y
(DS)=3879H, (BX)=1000H, (SI)=0002H
求下列指令执行完后指定寄存器的内容 MOV AX, [1000H] ; (AX)=(0012H ) MOV BX, [BX]; (AX)= ( 0012H)
MOV AX, [BX+SI]; (AX)= ( 0110H)
MOV AX, [Y+1]; (AX)= ( 0110H) LEA DX, X; (DX)= ( 1000H) LDS SI,Y; (SI)= ( 1000H) (DS)= ( 1001H)
28. 已知(SI)=2000H,(BX)=1000H,(DS)=3000H,(33000H)=15981000H,(32000H)=86050F34H,(DI)=4000H,(35000H)=79008A4CH。
求下列指令执行完后CS及IP寄存器的内容
JMP SI;(IP)= (2000H )
JMP [SI];(IP)= (0F34H )
JMP [BX+SI];(IP)=(1000H )
JMP DWORD PTR [BX+DI];(IP)=(8A4CH )
(CS)= (3000H )
29. 已知(BX)=1000H,(DS)=2000H,(21000H)=3000H,(23000H)=4000H, 则 XCHG BX,
[BX] 执行完后
(BX)=(3000H )
((BX))=(1000H )(一个字的内容)
(21000H)=(1000H )(一个字的内容)
30. 已知(SP)=1000H,(SS)=3000H,(31000H)=2000H,(DS)=4000H,(BX)=1200H,则 POP [BX] 指令执行完后
(SP)=(0FFEH )
(41200H)=( 2000H)(一个字的内容)
31. 已知:(AX)=4F08H,(CF)=0,(CL)=4,则 RCR AX,CL指令执行完后 (AX)= ( 04F0H)
(CF)=( 1)
注意:根据题意我们可以得到右移之前的数据是[**************]0B带进位右移4次后的数据是:[**************] 最后一次将原来数值的第四位“1”移入CF 中
32. INT中断指令将CS,IP,PSW(FLAG)压入堆栈的次序依次为(FLAG ) ,(CS ),(IP )。中断向量共有(256 )个。