汇编语言在线测试及答案 (1)

习题一

1.在计算机内部,计算机能够直接执行的程序语言是。

A.汇编语言B.C++语言

C.机器语言D.高级语言

2.在堆栈段中,存放栈顶地址的寄存器是。

A.IP B.SP C.BX D.BP

3.指令指针寄存器IP用来存放代码段中的偏移地址。在程序运行的过程中,它始终指向。

A.下一条指令的首地址B.下一条指令的地址

C.当前指令的首地址D.当前指令的地址

4.编译程序的功能是。

A.检查源程序中的语法错误和逻辑错误

B.将源程序编译成目标程序

C.改正源程序中的语法错误

D.将高级语言源程序翻译成汇编语言源程序

5.用户为了解决自己的问题,用汇编语言所编写的程序,称为。

A.目标程序B.源程序C.可执行程序D.汇编程序6.计算机中用来存储程序、数据等信息的记忆装置是。

A.控制器

B.运算器

C.CPU

D.存储器

7.在宏汇编中,源程序必须通过____编译_______生成目标代码,然后用连接程序将其转化为可执行文件, 该文件可在系统中运行。

习题二

1 当 SS =3000H,SP =0100H 时,执行 PUSH AX 指令后,堆栈顶部的物理地址是()

A.30100H B.30098H C.30102H D.300FEH

2 设10000010B分别以原码、补码及反码表示时,则对应的十进制数依次是()A.-82、-126、-2 B.-2、-125、126

C.-2、-126、-125 D.-82、-125、125

3 标志寄存器中属于控制标志位的是()

A. DF,OF,SF

B. DF,IF,TF

C. OF,CF,PF

D. AF,OF,SF

4 设(AX)=4544H,在执行指令”SUB AH,AL”之后,()

A.CF=0,OF=0 B.CF=0,OF=1

C.CF=1,OF=0 D.CF=1,OF=1

5 若寄存器AX、BX、CX、DX的内容分别为18,19,20,21时,依次执行PUSH AX,

PUSH BX,POP CX,POP DX后,寄存器CX的内容为______19____________。

6 若物理地址为2D8C0H,偏移量为B6A0H,则段地址为 _2222H________。

7 设(AL)=70H,分析在SUB AL,9AH后,标志寄存器中CF、OF、ZF、PF、SF的

状态。

CF=1,OF=1,,ZF=0,PF=0,SF=1

习题三

1、下列指令中,正确的一条是。

A)MOV BYTE PTR [BX],1000

B)MOV AX,[SI][DI]

C)LEA BX,4[BX]

D)MOV AX,ARRAY1+ARRAY2

2、指令 SUB AX,5[BX+DI]的源操作数的寻址方式是。

A) 寄存器寻址B) 基址+变址寻址

C) 变址寻址 D) 直接寻址

3、假设V1和V2是用DW定义的变量,下列指令中正确的是。

A)MOV V1,V2 B)MOV V1,20H

C)MOV 2000H,V2 D)MOV AL,V1

4、设在内存单元(0010H)= 12H, (0011H)= 34H,对于从0010H处取一个字的

叙述正确

的是________。

A) 读出的字的值为1234H,需要访问两次存储器

B) 读出的字的值为3412H,需要访问两次存储器

C) 读出的字的值为3412H,需要访问一次存储器

D) 读出的字的值为1234H,需要访问一次存储器

5、有指令“MOV SI,OFFSET DATA”,和它等效的指令是___LEA SI,DATA_________。

6、对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容:

TABLE1 DB ?

TABLE2 DW 20 DUP(?)

TABLE3 DB ‘ABCD’

MOV AX,TYPE TABLE1 ; AX=①

MOV BX,TYPE TABLE2 ; BX=②

MOV CX,LENGTH TABLE2 ;CX=③

MOV DX,SIZE TABLE2 ; DX=④

MOV SI,LENGTH TABLE3 ; SI=⑤

AX=1,BX=2,CX=20,DX=40,SI=1.

习题四

1. MOV AL,20H

MOV BL,AL

ADD AL,BL

SBB AL,10H

CBW

DIV BL

上述程序段执行后,(AH)=___10H________,(AL)=___01H_______

2. 语句”BUF DB 25”的含义是()

A.用BUF 表示25

B.定义BUF为字节变量,初始值为25

C.从标号BUF对应的地址起分配25个单元

D.定义BUF为变量,其地址为25

3.除法指令DIV的格式中,只有一个源操作数。若其类型属性为字节,则目的操作数在_______AX__________中。

4.执行一列三条指令后,AX寄存器中的内容是()。

MOV AX,‘8’

ADD AL,‘9’

AAA

A.0071H B.0107H C.0017H D.0077H

5.逻辑移位指令SHL用于()

A.带符号数乘2 B.带符号数除2

C.无符号数乘2 D.无符号数除2

6. CWD指令的功能是()

A.把源操作数的符号位扩展到目的操作数中

B.把AL中的符号位扩展到AH中

C.把AH中的符号位扩展到AL中

D.把AX中的符号位扩展到DX中

7.已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确的

是()

A. DIV BX

B. CWD

IDIV BX

C. XOR DX,DX

D. CBW

DIV BX IDIV BX

8. 使AL中的操作数0,1位变反,其它位不变的指令是_____XOR_03H_______________。

9. 写出将寄存器BX,AX 的内容互换的正确指令是____XCHG_AX,BX___________________。

10. 设(AX)=2012H,执行CMP AX,2012H 后(AX)= __2012H_________。

习题五

(1)设(SS)=338AH,(SP)=0450H,执行PUSH BX和PUSHF两条指令后,堆栈顶部的物理地址是()。

A.33CECH B.33CF2H

C.33CF4H D.33CE8H

(2)若(AX )=-15,要得到(AX) =15应执行的指令是()。

A.NEG AX B.NOT AX C.INC AX D.DEC AX

(3)将累加器AX 内容清零的错误指令是()。

A.AND AX,0 B.XOR AX,AX

C.SUB AX,AX D.CMP AX,AX

(4)填写执行下列程序段后的结果。

MOV DX,8F70H

MOV AX,54EAH

OR AX,DX

AND AX,DX

NOT AX

XOR AX,DX

TEST AX,DX

(AX)=__________ 、 (DX)=__________ 、 SF=__________

OF=________、 CF=_________、 PF=_________ 、 ZF=__________

(AX)=0FFFFH,(DX)=8F70H,SF=1,OF=0,CF=0,PF=0,ZF=0

(5) DAT1 DW 12H,23H,34H,46H,57H

DAT2 DW 03H

LEA BX, DAT1

ADD BX, DAT2

MOV DX,[BX]

MOV AX,4[BX]

SUB AX,DX

执行上列程序段后,AX的内容为。

(AX)=2300H

(6)执行下列程序段后,AX和CF中的值是多少?

STC

MOV CX,0403H

MOV AX,0A433H

SAR AX,CL

XCHG CH,CL

SHL AX,CL

(AX)=4860H,CF=1

习题六

1. 已知AX=0FFFFH,DX=0001H

MOV CX,2

LOP:SHL AX,1

RCL DX,1

LOOPLOP

上述程序段执行后,(DX)=0007H,(AX)=0FFFCH

2. 已知AX=78H,BX=0804H

SHR BX,1

AND BX,0F0FH

MOV CX,4

LOP:XCHG BH,BL

DIV BL

SAL AX,1

LOOP LOP

上述程序段执行后,(AX)=001EH,(BX)=0402H

3.CODE SEGMENT

ASSUME CS: CODE, DS: CODE, SS: CODE

ORG 100H

BEGIN: MOV AX, 01H

MOV BX, 02H

MOV DX, 03H

MOV CX, 04H

L20: INC AX

ADD BX, AX

SHR DX, 1

LOOPNE L20

RET

CODE ENDS

END BEGIN

当执行以上程序后,AX、BX、CX、DX中的值分别是多少?:AX=①

BX=②

CX=③

DX=④

(AX)=03H,(BX)=07H,(CX)=02H,(DX)=0

4.已定义了两个字变量A和B,补充下列程序段使之完成下列功能:

A.若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。

B.若两个数均为奇数,则将两数均加1后存回原变量。

C.若两个数均为偶数,则两个变量均不改变。

MOV AX,A

TEST AX,_0001H_____

JZ A_EVEN

MOV BX,B

TEST BX,0001H

JZ B_EVEN

_INC_AX_____________

MOV A,AX

_INC_BX__________

MOV B,BX

B_EVEN: _JMP_EXIT___________

A_EVEN: MOV BX,B

TEST BX,0001H

JZ EXIT

XCHG_AX,BX___________

MOV A,AX

MOV B,BX

EXIT:

习题七

1.如果用调试程序DEBUG的R命令在终端上显示当前各寄存器的内容如下,请说明当前堆栈段段基址是多少?栈顶的物理地址是多少?

段基址21F0H,物理地址31EEEH

C>DEBUG

-R

AX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000 SI=0000

DI=0000 DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL

NZ NA PO NC

2.分析下列程序段执行后,AX寄存器的内容是什么?

......

TABLE DW 10H,20H,30H,40H,50H,60H,70H,80H

ENTRY DW 6

......

MOV BX,OFFSET TABLE

ADD BX,ENTRY

MOV AX,[BX]

(AX)=0040H

3.试分析下列程序段执行后,AX和DX寄存器的内容分别是什么?......

VAR1 DB 86H

VAR2 DW 2005H,0021H,849AH,4000H

......

MOV AL,VAR1

CBW

LEA BX,VAR2

MOV DX,2[BX]

SUB AX,DX

(AX)=0FF65H,(DX)=0021H

4.试分析下列程序段,回答所提问题。

ORG 3000H

DB 11H,12H,13H,14H,15H

......

MOV BX,3000H

STC

ADC BX,1

SAL BL,1

INC BYTE PTR [BX]

(1)程序段执行后,3004H 单元中的内容是什么?16H

(2)程序段执行后,BX中的内容是什么?CF的值是1还是0?(BX)=3004H,CF=0

习题八

1. 分析下面的程序段,执行后AX的内容为多少?

ARRAY DW 10 DUP(2)

XOR AX,AX

MOV CX,0AH

MOV SI,12H

NEXT:ADD AX,ARRAY[SI]

SUB SI,02H

LOOP NEXT

(AX)=20//或14H

2.执行下列程序段后,给出指定寄存器的内容。

MOV AX,0

MOV BX,1

MOV CX,5

A: ADD AX,BX

INC BX

LOOP A

HLT

执行后的结果为AX=__15____;

BX=__ 6____。

该程序段的功能是____计算0+1+2+3+4+5_ ___________________。

3.设(AX)=1122H,(BX)=3344H,(SP)=5566H,执行如下程序段后,IP和SP的值分别是什么?

SUN PROC

PUSH AX

ADD BX,AX

PUSH BX

POP BX

RET

SUN ENDP

IP=1122H,SP=5566H

4、

执行下列程序段后,AX和CF中的值是多少?

STC

MOV CX,0403H

MOV AX,0A433H

SAR AX,CL

XCHG CH,CL

SHL AX,CL

(AX)=4860H,CF=1

5、下列程序段运行后,HCOD和HCOD+1两字节单元内容是什么?

HEX DB ‘0123456789ABCDEF’

HCOD DB ?,?

MOV BX,OFFSET HEX

MOV AL,1AH

MOV AH,AL

AND AL,0FH

XLAT

MOV HCOD[1],AL

MOV CL,12

SHR AX,CL

XLAT

MOV HCOD,AL

‘1’,’A’

习题九

1、CALL DWORD PTR [BX]指令是段间调用还是段内调用。它一共向堆栈中压入几个字?两个字

2、在子程序设计时,为什么要保护和恢复现场?由于汇编语言所操作处理的对象主要是CPU寄存器,而主程序在调用子程序时,已经占用了一定的寄存器,子程序执行完毕返回主程序后,又要保证主程序按原有状态继续正常执行,这就需要对这些寄存器的内容加以保护

3、试分析下列程序段:

ADD AX,BX

JNO L1

JNC L2

SUB AX,BX

JNC L3

JNO L4

JMP SHORT L5

如果AX 和BX的内容如下:

AX BX

(1)14C6H 80DCH

(2)B568H 54B7H

(3)42C8H 608DH

(4)D023H 9FD0H

(5)9FD0H D023H

试问该程序分别在上面几种情况下执行后,程序转向哪里

L1,L1,L2,L5,L5

习题十

1、下列指令中,在指令执行后有可能影响CS值的指令数目是()JMP MOV RET ADD INT

JC LODS CALL MUL POP

A.3 B.4C.5 D.6

2、下面关于宏指令的叙述不正确的是()

A.宏指令可以简化源程序的书写;

B.宏指令可以简化目标程序;

C.宏指令和子程序的存储形式和执行方式均不相同;

D.从形式上看,宏指令可以扩充机器的指令系统。

3、对于下列程序段:

AGAIN:MOV ES:[DI],AL

INC DI

LOOP AGAIN

可用指令()完成相同的功能。

A.REP MOVSB

B.REP STOSB

C.REP LODSB

D.REP LODSB

4、在下列指令中,隐含使用AL寄存器的指令有()条。

AAA MOVSB MUL BH

CBW SCASB XLAT

A. 2 B.3 C.4 D.5

5、假设ES段中有一个字符中串‘12FG3LM5C’,其名为ARRAY。当以下程序段执行后,CX的值是。

CLD

LEA DI,ES:ARRAY

MOV AL,‘G’

MOV CX,9

REPNE SCASB

HLT

A. 0 B.5C.4 D.9

相关主题
相关文档
最新文档