《汇编语言》综合复习.docx

上传人:b****3 文档编号:3893273 上传时间:2022-11-26 格式:DOCX 页数:23 大小:24.24KB
下载 相关 举报
《汇编语言》综合复习.docx_第1页
第1页 / 共23页
《汇编语言》综合复习.docx_第2页
第2页 / 共23页
《汇编语言》综合复习.docx_第3页
第3页 / 共23页
《汇编语言》综合复习.docx_第4页
第4页 / 共23页
《汇编语言》综合复习.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

《汇编语言》综合复习.docx

《《汇编语言》综合复习.docx》由会员分享,可在线阅读,更多相关《《汇编语言》综合复习.docx(23页珍藏版)》请在冰豆网上搜索。

《汇编语言》综合复习.docx

《汇编语言》综合复习

《汇编语言》综合复习资料

一、单项选择题

在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题后的括号内:

1.十六进制数88H,可表示成下面几种形式,请找出错误的表示()。

(A)无符号十进制数136(B)带符号十进制数-120

(C)压缩型BCD码十进制数88(D)8位二进制数-8的补码表示

2.指令指针寄存器是()。

(A)IP(B)SP(C)BP(D)BX

3.若AX=3500H,CX=56B8H,当ANDAX,CX指令执行后,AX=()

(A)1400H(B)77F8H(C)0000H(D)0FFFFH

4.完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是()。

(A)MOVAL,00H(B)ANDAL,00H

(C)XORAL,AL(D)SUBAL,AL

5.下列指令执行后总是使CF=0,OF=0的是()。

(A)AND(B)NEG(C)NOT(D)INC

6.在下列语句中,BUFFER称为()

BUFFERDB01H,0AH

(A)符号(B)变量(C)助记符(D)标号

7.DATASEGMENT

TA1DW0102H,0304H,0506H

TA2DB02H,03H,04H

MOVBX,DS:

[0006H]

ANDBX,0FFH

ORBH,[BX]

上述指令序列运行后,BX的内容是()。

(A)0605H(B)0402H(C)0606H(D)0204H

8.当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是()。

(A)JLE(B)JNL(C)JNLE(D)JL

9.下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为()

TESTBH,01H

_____K1

(A)JNE(B)JZ(C)JS(D)JC

10.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是()。

(A)TESTBL,4FH

JZNEXT

(B)XORBL,4FH

JZNEXT

(C)ANDBL,4FH

JZNEXT

(D)ORBL,4FH

JZNEXT

11.在汇编语言程序中,对END语句的叙述正确的是()。

(A)END语句是一可执行语句(B)END语句表示程序执行到此结束

(C)END语句表示源程序到此结束(D)END语句在汇编后要产生机器码

12.下面的数据传送指令中,错误的操作是()。

(A)MOVSS:

[BX+DI],1000H(B)MOVDX,1000H

(C)MOVWORDPTR[BX],1000H(D)MOVDS,2000H

13.下面指令执行后,变量DAB中的内容是()。

DAWDW2A05H

DABDB0FAH

MOVAL,BYTEPRTDAW

SUBDAB,AL

(A)0DAH(B)0FAH(C)0F5H(D)0D0H

14.串操作指令中,目标串操作数的段地址一定在()寄存器中。

(A)CS(B)SS(C)DS(D)ES

15.设数据段中已有:

DA1DB12H,34H

DA2DW56H,78H

下面有语法错误的句是()

(A)ADR1DWDA1(B)MOVDA1+1,AX

(C)MOVBYTEPTRDA2+1,AL(D)MOVWORDPTRDA1+1,AX

16.DECBYTEPTR[BX]指令中的操作数的数据类型是()

(A)字(B)双字(C)字节(D)四字

17.把若干个模块连接起来成为可执行文件的系统程序称为()。

(A)连接程序(B)汇编程序(C)编译程序(D)目标程序

18.操作数直接存放在指令中,则它的寻址方式是()。

(A)直接寻址(B)寄存器寻址(C)寄存器间接寻址(D)立即寻址

19.在程序状态字寄存器中,当方向标志DF位为0时,每次操作后使变址寄存器SI和DI()。

(A)减量(B)增量(C)保持不变(D)地址减1

20.八位二进制补码整数的最小值是()。

(A)-126D(B)-127D(C)-128D(D)-129D

21.在微机系统中分析并控制指令执行的部件是()

A.寄存器B.数据寄存器C.CPUD.EU

22.能被计算机直接识别的语言是()

A.C语言B.汇编语言C.机器语言D.面向对象语言

23.MOVAX,ES:

COUNT[DI]源操作数的寻址方式是()

A.基址寻址 B.立即寻址  

C.变址寻址  D.基址变址寻址

24.指令MOVBX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为()

A.17500H   B.16500H   

C.14500H   D.13500H

25.在标志寄存器中表示溢出的标志()

A.AF

C.OF

26.当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。

(A)表示结果中含1的个数为偶数(B)表示结果中含1的个数为奇数

(C)表示该数为偶数(D)表示结果中低八位含1的个数为偶数

27.汇编语言指令中唯一不可缺少的域是()

A.标号名字域  B.助记符域  

C.操作数域  D.注释域

28.已知(DS)=3000H,(SS)=2500H,(BX)=0100H,(BP)=0040H,

指令MOVAX,DS:

[BP]源操作数的物理地址是()。

A.25040HB.30040HD.55040H

29.下列传送指令中,有语法错误的指令是()。

A.MOVCS,AXB.MOVDS,AXC.MOVES,AXD.MOVSS,AX

30.指令ADDES:

[DI],AX和存放在()。

A.寄存器B.附加段C.堆栈段D.代码段

二、简答题

1.在某子程序的开始处要保护AX,BX,CX三个寄存器信息,在子程序结束时要恢复这三个寄存器信息。

假设恢复现场的指令序列如下,试写出保护现场的指令序列。

POPAX

POPBX

POPCX

2.下面的程序段有错吗若有,请指出错误。

CRAYPROC

PUSHAX

ADDAX,BX

RET

ENDPCRAY

3.试根据以下要求,分别写出相应的汇编语言指令。

(1)把AX寄存器和BX寄存器的内容相加,结果存入AX中。

(2)用BX和SI的基址变址寻址方式,把存储器中的一个字节与DL的内容相加,并把结果送回DL中。

(3)把数5EH与AH内容相加,结果送回AH中。

4.对于下面的数据定义,三条MOV指令分别汇编成什么

TAB1DW10DUP()

TAB2DB10DUP()

TAB3DB‘1234’

MOVAX,LENGTHTAB1

MOVBL,LENGTHTAB2

MOVCL,LENGTHTAB3

5.完成下列操作,分别选用什么指令:

(1)将AX的内容,减去0520H,和上次运算的借位;

(2)将变量名TABL的段地址送AX;

(3)将变量名TABL的偏移地址送AX。

6.假设有如下伪指令:

D1DB20HDUP()

D2DWD1

请写出用一条指令实现“取D1的偏移地址=>SI”中的三种方法。

7.已知数据段定义如下:

DATASEGMENT

VADB10H

VBDW3*20

MSGDB‘HELLO!

COUNTEQU15

BUFDWCOUNTDUP(5,3DUP(1,2),0)

DATAENDS

问题:

(1)执行MOVBX,0FFSETVA后,(BX)=

(2)执行MOVCX,TYPEBUF后,(CX)=

(3)经汇编后,BUF占有的存储空间是字节

8.在指令系统中,段内.段间返回均为RET指令。

试回答:

(1)执行段内返回RET指令时,执行的操作是:

(2)执行段间返回RET指令时,执行的操作是:

9.下面的程序段有错吗若有,请指出错误。

(5分)

CRAYPROC

PUSHAX

ADDAX,BX

RET

ENDPCRAY

三、程序分析(读程序)题

1.ADW6666H

BDW8888H

………

PUSHB

PUSHA

POPB

POPA

试回答:

(1)上述程序段执行后,以十六进制表示,

(A)=_____H,(B)=_____H

(2)设执行前SP=100H,执行后,以十六进制表示,

SP=_____H

2.现有下列程序段

MOVAX,6540H

MOVDX,3210H

MOVCL,04

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

试问上述程序段运行后,以十六进制表示,

(AX)=_____H

(BL)=_____H

(DX)=_____H

3.分析下面程序段:

MOVAX,3456

XCHGAX,BX

MOVAX,3456

SUBAX,BX

JEDONE

KK:

ADDAX,BX

DONE:

请问该程序段执行完JEDONE语句后,以十六进制表示,

(AX)=_____H,(ZF)=_____H

4.程序段如下:

BLK1DB46,84,34,-5,20,122,73

………

MOVCX,7

LEASI,BLK1

NEXT:

MOVAL,[SI]

INCSI

TESTAL,81H

LOOPZNEXT

MOVBL,[SI]

请回答程序段运行后,以十六进制表示,

(AL)=______H,(BL)=______H

5.分析下面程序段:

MOVAL,200

SARAL,1

MOVBL,AL

MOVCL,2

SARAL,CL

ADDAL,BL

试问程序段执行后,以十六进制表示,

(BL)=_____H,(AL)=_____H

6.有下列程序段:

ADDAL,BL

JEL1

RCLAL,1

JEL2

RCRAL,1

INCAL

JEL3

上述程序运行后,试回答(以十进制表示):

(1)当(AL)=__________时,程序转向L1

(2)当(AL)=__________时,程序转向L2

(3)当(AL)=__________时,程序转向L3

7.有下列程序段

MOVBX,00FFH

ANDBX,0FFFH

ORBX,0F0FH

XORBX,00FFH

试问上述程序段运行后,以十六进制表示,

(AL)=____________H

8.执行下列指令后,AX寄存器中的内容是什么

STARTDW10H,20H,30H,40H,50H

EE1DW3

MOVBX,OFFSETSTART

ADDBX,EE1

MOVAX,[BX]

执行后,以十六进制表示,

(AX)=____________H

9.有下列程序段:

MOVSI,10H

MOVAX,1234H

MOV[SI+12H],AX

LEABX,[SI]

MOV[SI+14H],BX

LESBX,DWORDPTR[SI+12H]

MOVAX,ES

DECAX

执行上述程序段后,AX和BX寄存器的内容,以十六进制表示,

(AX)=____________H

(BX)=____________H

10.有下列程序段

MOVCX,1AH

MOVDL,'z'

LAB1:

PUSHDX

MOVAH,02H

INT21H

POPDX

DECDX

LOOPLAB1

执行后,屏幕输出结果为:

____________________

11.设(SP)=80H,(BX)=0FFH;(AX)=1

PUSHBX

ADDBX,AX

XORBX,AX

PUSHBX

POPCX

上述程序段运行后,(SP)=______H(CX)=_______H

12.有如下程序段

MOVAX,0

MOVBX,1

MOVCX,5

LOP:

ADDAX,BX

ADDBX,2

LOOPLOP

问题:

(1)程序的功能是什么(可用算式表示)

(2)运行后,(AX)=__________

13.已知(DS)=5000H,(BX)=0100H,(DI)=0002H,(50100H)=45H,(50101H)=68H,(50102H)=0A1H,(50103H)=14H

先执行MOVAX,[100H],(AX)=;

再执行ADDAX,[BX+DI],(AX)=,CF=,OF=。

14.已知(AX)=3200H,(DX)=0A000H,执行下列程序段:

NOTAX

NOTDX

ADDAX,1

ADCDX,0

问题:

(1)程序执行后,(AX)=(DX)=

(2)程序功能是什么

15.有下列程序段

MOVAX,10

ADDAX,AX

MOVBX,AX

MOVCL,2

SHLAX,CL

ADDAX,BX

上述程序段执行后(AX)=,(BX)=

16.有下列程序段

MOVAX,9B47H

MOVBX,0B568H

ADDAX,BX

JNOL1

JNCL2

SUBAX,BX

JNCL3

JNOL4

JMPSHORTL5

问:

(1)程序执行后,(AX)=_______________H

(2)程序转向哪个标号

17.行下列程序:

MOVAX,0C100H

MOVBX,8FC0H

SUBAX,BX

JNCL1

JNOL2

JMPSHORTL3

程序执行后,(AX)=,程序转向

18.有下列程序段

MOVAL,0FH

MOVBL,10H

CALLSUB1

INCAL

DECBL

SUB1PROC

ADDAL,BL

XCHGAL,BL

RET

SUB1ENDP

上述程序段运行后,(AL)=__________H,(BL)=____________H

19.ADW1234H

BDW5678H

………

PUSHA

PUSHB

POPA

POPB

试回答:

(1)上述程序段执行后,以十六进制表示,

(A)=_____H

(B)=_____H

(2)设执行前SP=200H,执行后,以十六进制表示,

(SP)=_____H

四、程序填空题

下列各小题中,一个空只能填一条指令。

1.下面程序段用来判断寄存器AH和AL中第3位是否相同,如果相同,AH置0,否则AH置全1。

试把空白处填上适当指令。

_____________________

ANDAH,08H

_____________________

MOVAH,OFFH

JMPNEXT

ZERO:

MOVAH,0

NEXT:

……

2.以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。

BUFDB5,6,7,58H,62,45H,127,……

COUNTEQU$-BUF

MAXDB

MOVBX,OFFSETBUF

MOVCX,COUNT-1

MOVAL,[BX]

INCBX

LOP1:

_____________________

JAENEXT

MOVAL,[BX]

NEXT:

INCBX

_____________________

MOVMAX,AL

3.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。

TESTAX,8000H

(1)___________

MOVPLW,BX

JMPDONE

K1:

(2)________

DONE:

4.在下面程序段的每一空框中填入一个语句(不得修改其它语句),以实现下述功能:

求:

z=|x-y|,设x,y,z分别为字数据的无符号变量名称。

MOVAX,X

CMPAX,Y

JBNEXT

SUBAX,Y

(1)______________________

NEXT:

MOVAX,Y

SUBAX,X

DONE:

(2)______________________

5.下列程序段将AX中值乘以9,请将程序填写完整

⑴__________

MOVCL,3

⑵____________

POPBX

ADDAX,BX

答:

(1)PUSHAX

(2)SHLAX,CL

6.下列程序段求数组ARRAY的累加和。

请将程序填写完整。

ARYDW45H,68H,………….,0ABC1H,9600H;共10项

COUNTDW10

⑴__________

MOVCX,COUNT

XORAX,AX

AGAIN:

ADDAX,[SI]

ADDSI,2

⑵____________

五、编制程序(段)题

1.编程序段(10分)

编制将ES段中名为DATA的字存储区清零的程序段。

假定DATA存储区定义为:

DATADW20DUP()

要求用循环指令编写,循环控制采用计数寄存器自动控制。

(此题勿需书写完整的源程序格式,只需把试题要求的有关指令序列书写出来。

2.编程序段(10分)

设X,Y,Z,W存放16位带符号数,编程计算X*Y-Z的值并送到W

(此题勿需书写完整的源程序格式,只需把试题要求的有关指令序列书写出来。

3.编程序段(10分)

测试AL寄存器的D5和D0位,若同时为0,程序转向ZERO,执行AX减去BX;否则将AL清0,同时清CF和OF标志。

写出程序段。

(此题勿需书写完整的源程序格式,只需把试题要求的有关指令序列书写出来。

4.编写完整程序:

(13分)

设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。

要求子程序开始时必须利用堆栈保护用到的各寄存器,并在返回前恢复;主程序结构要书写完整(包括子程序的调用方式)(结果不必输出)。

其中数据段如下:

DATASEGMENT

DATDB-6

SQRTABDB0,1,4,9,16,25,36,49,64,81

SQRDB

DATAENDS

5.编写完整程序:

(13分)

将一正数N插入一个已排好序的数组的正确位置。

该数组的首地址和末地址分别为AHEAD与AEND,其中所有数均为正数,而且按递增顺序排序(结果不必输出)。

数据段如下:

DATASEGMENT

XDW

AHEADDW2,5,7,89,100,200

AENDDW288

NDW35

DATAENDS

6.编写完整程序:

(13分)

在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。

DATASEGMENT

BUF1DW-56,24,54,-1,89,-8,----

BUF2DW45,-23,124,345,-265,----

SUMDW10DUP(0)

DATAENDS

7.编写完整程序:

(13分)

在给定个数的数中寻找最大值,放至指定的存储单元。

假设数据段如下:

DATASEGMENT

BUFFERDB2,4,3,6,1,5

COUNTDW6

MAXDB

DATAENDS

部分参考答案及评分标准

一、单选题(每小题2分,共60分)

1.D2.A3.A4.A5.A

6.B7.B8.C9.A10.B

11.C12.D13.C14.D15.B

16.C17.A18.D19.B20.C

21.C22.C23.C24.B25.C

26.D27.B28.B29.A30.B

二、简答题(每小题3分,共27分)

1.PUSHCX(1分)

PUSHBX(1分)

PUSHAX(1分)

2.程序最后一行有错,应写成:

CRAYENDP(3分)

3.

(1)ADDAX,BX(1分)

(2)ADDDL,[BX][SI](1分)

(3)ADDAH,5EH(1分)

4.MOVAX,10(1分)

MOVBL,10(1分)

MOVCL,1(1分)

5.

(1)SBBAX,0520H(1分)

(2)MOVAX,SEGTABL(1分)

(3)MOVAX,OFFSETTABL(1分)

6.三种方法,对1个得1分,无先后顺序。

(1)LEASI,D1

(2)MOVSI,OFFSETD1

(3)MOVSI,D2

7.

(1)0(1分)

(2)2(1分)

(3)240(1分)

8.执行段内返回:

栈顶内容→IP,SP+2→SP(2分)

执行段间返回:

栈顶内容→IP,SP+2→SP(2分)

栈顶内容→CS,SP+2→SP(2分)

9.程序最后一行有错,应写成:

CRAYENDP(6分)

五、编制程序题

1.程序段:

(10分)

DATA

DW20DUP()

MOVAX,SEGDATA

MOVES,AX

MOVDI,0

MOVCX,LENGTHDATA;

GOON:

MOVDATA[DI],0

ADDDI,2

LOOPGOON

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1