《汇编语言》综合复习资料文档格式.doc

上传人:wj 文档编号:8548773 上传时间:2023-05-11 格式:DOC 页数:14 大小:130KB
下载 相关 举报
《汇编语言》综合复习资料文档格式.doc_第1页
第1页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第2页
第2页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第3页
第3页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第4页
第4页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第5页
第5页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第6页
第6页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第7页
第7页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第8页
第8页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第9页
第9页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第10页
第10页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第11页
第11页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第12页
第12页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第13页
第13页 / 共14页
《汇编语言》综合复习资料文档格式.doc_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《汇编语言》综合复习资料文档格式.doc

《《汇编语言》综合复习资料文档格式.doc》由会员分享,可在线阅读,更多相关《《汇编语言》综合复习资料文档格式.doc(14页珍藏版)》请在冰点文库上搜索。

《汇编语言》综合复习资料文档格式.doc

(A)MOVSS:

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

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

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

DAW DW2A05H

DAB DB0FAH

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.CPU 

D.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 

B.CF

C.OF 

D.SF

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.25040H B.30040H C.25100H D.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.下面的程序段有错吗?

若有,请指出错误。

CRAY PROC

PUSHAX

ADDAX,BX

RET

ENDP CRAY

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.假设有如下伪指令:

D1 DB20HDUP(?

D2 DWD1

请写出用一条指令实现“取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分)

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

1. 

A DW6666H

B DW8888H

………

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.分析下面程序段:

MOV AX,3456

XCHG AX,BX

SUB AX,BX

JE DONE

KK:

ADD AX,BX

DONE:

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

(AX)=_____H,(ZF)=_____H

4.程序段如下:

BLK1 

DB46,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.有下列程序段:

ADD AL,BL

JE L1

RCL AL,1

JE L2

RCR AL,1

INC AL

JE L3

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

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

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

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

7.有下列程序段

MOVBX,00FFH

ANDBX,0FFFH

ORBX,0F0FH

XORBX,00FFH

(AL)=____________H

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

START DW10H,20H,30H,40H,50H

EE1 DW3

MOVBX,OFFSETSTART

ADDBX,EE1

MOVAX,[BX]

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

(AX)=____________H

9.有下列程序段:

MOV 

SI,10H

AX,1234H

[SI+12H],AX

LEA 

BX,[SI]

[SI+14H],BX

LES 

BX,DWORDPTR[SI+12H]

AX,ES

DEC 

AX

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

(AX)=____________H

(BX)=____________H

10.有下列程序段

MOV 

CX,1AH

MOV 

DL,'

z'

LAB1:

PUSH 

DX

AH,02H

INT 

21H

POP 

DX

DEC 

LOOP 

LAB1

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

____________________

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

(AX)=1

PUSHBX

ADD BX,AX

XOR BX,AX

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

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

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

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

NOTAX

NOTDX

ADDAX,1

ADCDX,0

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

(DX)=?

(2)程序功能是什么?

15.有下列程序段

MOV AX,10

ADD AX,AX

MOV BX,AX

MOV CL,2

SHL AX,CL

ADD AX,BX

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

16.有下列程序段

MOVAX,9B47H

MOVBX,0B568H

JNOL1

JNCL2

SUBAX,BX

JNCL3

JNOL4

JMPSHORTL5

问:

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

(2)程序转向哪个标号?

17.行下列程序:

MOV AX,0C100H

MOV BX,8FC0H

SUB AX,BX

JNC L1

JNO L2

JMP SHORTL3

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

18.有下列程序段

MOVAL,0FH

MOVBL,10H

CALLSUB1

INCAL

DECBL

SUB1PROC

ADDAL,BL

XCHGAL,BL

RET

SUB1ENDP

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

19.A DW 1234H

B DW 5678H

PUSH A

PUSH B

POP A

POP B

(A)=_____H

(B)=_____H

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

(SP)=_____H

四、程序填空题

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

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

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

_____________________

AND 

AH,08H

MOV 

AH,OFFH

JMP 

NEXT

ZERO:

MOV 

AH,0

……

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

BUF 

DB 

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

COUNT 

EQU 

$-BUF

MAX 

DB ?

BX,OFFSET 

BUF

CX,COUNT-1

AL,[BX]

INC 

BX

LOP1:

_____________________

JAE 

NEXT

MAX,AL

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

TESTAX,8000H

(1)___________

MOVPLW,BX

JMPDONE

K1:

(2)________

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

答:

(1)PUSHAX

(2)SHLAX,CL

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

请将程序填写完整。

ARY DW45H,68H,………….,0ABC1H,9600H;

共10项

COUNT DW10

⑴__________

MOV CX,COUNT

XOR AX,AX

AGAIN:

ADD AX,[SI]

ADD SI,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单元。

要求子程序开始时必须利用堆栈保护用到的各寄存器,并在返回前恢复;

主程序结构要书写完整(包括子程序的调用方式)(结果不必输出)。

其中数据段如下:

DATA SEGMENT

DAT DB -6

SQRTAB DB 0,1,4,

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

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2