汇编语言程序设计习题集文档格式.docx

上传人:b****6 文档编号:19339182 上传时间:2023-01-05 格式:DOCX 页数:20 大小:45.13KB
下载 相关 举报
汇编语言程序设计习题集文档格式.docx_第1页
第1页 / 共20页
汇编语言程序设计习题集文档格式.docx_第2页
第2页 / 共20页
汇编语言程序设计习题集文档格式.docx_第3页
第3页 / 共20页
汇编语言程序设计习题集文档格式.docx_第4页
第4页 / 共20页
汇编语言程序设计习题集文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

汇编语言程序设计习题集文档格式.docx

《汇编语言程序设计习题集文档格式.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计习题集文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

汇编语言程序设计习题集文档格式.docx

D.DT

15.假设VAR为变量,指令MOVBX,OFFSETVAR的寻址方式是(   )。

A.直接寻址B.间接寻址C.立即寻址D.存储器寻址

16.执行下列指令:

STR1 

DW 

‘AB’

STR2 

DB16DUP(?

CONT 

EQU$-STR1

MOV 

CX,CONT

AX,STR1

HLT

后寄存器CL的值是(   )。

A. 

12H 

B.0EH 

C. 

0FH 

D.10H

17.与MOVBX,OFFSETVAR指令完全等效的指令是(   )。

A.MOVBX,VAR 

B.LDSBX,VAR 

C.LESBX,VAR 

D.LEABX,VAR 

18.在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是(   )。

A.WORD 

B.PAGE 

C.BYTE 

D.PARA 

19.BUFDW10HDUP(3DUP(2,10H),3,5) 

上述语句汇编后,为变量BUF分配的存储单元字节数是(   )。

A.80H 

B.100H 

C.124 

D.192 

20.在汇编语言程序的开发过程中使用宏功能的顺序是(   )。

A.宏定义,宏调用 

 

B.宏定义,宏展开 

C.宏定义,宏调用,宏展开 

D.宏定义,宏展开,宏调用 

21.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是(   )。

A.名字项 

B.操作项 

C.操作数项 

D.注释项 

22.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(   )。

A.CMP 

B.SUB 

C.AND 

D.MOV 

23.为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是(   )。

A.INCCXJZMINUS 

B.SUBCX,OFFFFHJZMINUS 

C.ANDCX,OFFFFHJZMINUS 

D.XORCX,OFFFFHJZMINUS 

24.假设V1和V2是用DW定义的变量,下列指令中正确的是(   ).

A.MOVV1,20HB.MOVV1,V2

C.MOVAL,V1D.MOV2000H,V2

二.多项选择题(每题有多个正确答案,选出所有正确答案,多选.少选均不得分)

1.变量定义的伪指令助记符有:

(      )。

A.DB 

B.DW 

D.DF 

E.DQ 

F.DT

2.主程序与子程序之间传递参数可通过(      )进行。

A.堆栈 

B.存储器单元 

C.通用寄存器 

D.指令队列 

E.其他

3.交换寄存器SI.DI的内容,正确的程序段是(      )。

A.PUSHSIB.PUSHSI

PUSHDIPUSHDI

POPSIPOPDI

POPDIPOPSI

C.MOVAX,SID.MOVAX,SI

MOVSI,AXMOVBX,DI

MOVDI,AXXCHGBX,AX

4.过程(子程序)调用的形式有(      )。

A.段内直接B.段内间接C.段间直接D.段间间接

三.填空题

1. 23.当要求段的首地址只能被16整除时,需选择的定位方式为__   _。

2.程序段 

VAR1 

DB?

VAR2 

DW20DUP(58H,2DUP(?

))

VAR3 

DB‘ABCD’

.

AX,TYPE 

VAR1

BX,TYPE 

VAR2

CX,LENGTHVAR2

DX,SIZEVAR2

SI,LENGTHVAR3

AX=   ,BX=   ,CX=   ,DX= 

   ,SI=   。

3.段定义伪指令语句用   语句表示开始,以 

   语句表示结束。

4.ARRAY 

DW10DUP(5DUP(4DUP(20H,40H,60H)))语句执行后共占   字节存储单元。

5.汇编语句中,一个过程有NEAR和FAR两种属性。

NEAR属性表示主程序和子程序 

    

,FAR属性表示主程序和子程序 

   。

6.DOS系统功能号应放在 

ah 

寄存器中。

7.子程序又称 

过程,它可以由 

   语句定义,由 

ret语句结束,属性可以是    

   或     。

8.与指令MOV 

BX,OFFSETBUF功能相同的指令是 

      

9.设有伪指令ADB01H,23H,则执行指令

BDW2DUP(0)

MOVAL,TYPEA后,(AL)=;

MOVBL,SIZEB后,(BL)=。

10.根据下面的指令和伪指令序列,AX寄存器的内容。

TABDB1,2,3,4,5,6

ENTRYEQU3

MOVBX,OFFSETTAB

DAA

MOVDH,AL

CMPDH,32H

执行上面程序段后,(DL)=(),(DH)=()。

4.源程序如下:

MOVAX,SEGTABLE;

TABLE为表头

MOVES,AX

MOVDI,OFFSETTABLE

MOVAL,‘0’

MOVCX,100

CLD

REPNESCASB

问:

1)该段程序完成什么功能?

( 

   )

2)该段程序执行完毕之后,ZF和CX有几种可能的数值?

各代表什么含义?

( 

5.源程序如下:

DATASEGMENT 

S9DB0,1,2,3,4,5,6,7,8,9 

DATAENDS 

┇ 

LEASI,S9 

LEA,DI,S9+1 

MOVCX,5 

LOP:

MOVAL,[SI] 

XCHGAL,[DI] 

MOV[SI],AL 

ADDSI,2 

ADDDI,2 

LOOPLOP 

上述程序段运行后,S9开始的10个字节存储单元内容是什么?

   )

6.源程序如下:

MOVAL,38H 

MOVBL,49H 

CALLSUBO 

INCAL 

DECCL 

SUBOPROC 

ADDAL,BL 

MOVCL,AL 

DAA 

RET 

SUBOENDP 

上述程序段运行后,AL=( 

   ),CL=( 

   ) 

7.源程序如下:

DA3EQUWORDPTRDA4 

DA4DB0ABH,89H 

SHRDA3,1 

MOVDX,DA3 

SHLDA4,1 

MOVCX,DA3 

上述程序段运行后,CX=( 

   ),DX=( 

   )

8.下面程序是将10个8位无符号数按递减次序排序,请将程序填写完整。

DATASEGMENT

ARRAYDB05H,78H,FFH,7BH,00H

DB8CH,20H,A0H,F0H,60H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

MAINPROCFAR

START:

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

AB1:

MOVSI,OFFSETARRAY

MOVBL,0

MOVCX,10

( 

   )   

AGAIN:

MOVAL,[SI]

INCSI

CMPAL,[SI]

   ) CD1

MOVAH,[SI]

MOV[SI],AL

DECSI

MOV[SI],AH

MOVBX,1

CD1:

LOOPAGAIN

DECBL

   )AB1

RET

MAINENDP

CODEENDS

ENDSTART

9.下面的程序段是统计AX中16位二进制数1的个数,并将结果放在CX中,填空使程序完成预定的功能。

XORCX,CX

L1:

ANDAX,AX

JZSTOP

SHLAX,1

(   )

INCCX

L2:

JMPL1

STOP:

10.下面的程序段是求8个无符号数累加和,最后结果用双字表示,存在YAH和YAL单元,填空使程序完成预定的功能。

DATASEGMENT

TABLEDW34,789,67,78,345,89,78,60

YAHDW0

YALDW0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

START:

MOVAX,DATA

MOVDS,AX

MOVDX,0

XORAX,AX;

清AX

MOVBX,OFFSETTABLE

MOVCX,8

CLC

LP:

ADDAX,[BX]

()

DON:

INCBX

INCBX

LOOPLP

MOVYAL,AX;

存和

MOVYAH,DX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

11.两个非组合BCD数(BY0,BY1)进行十进制减法,并将差求绝对值后保存在SD单元。

MOVAL,BY0

CMPAL,BY1

JNCL1

MOVAH,BY1

MOVBY1,AL

MOVAL,AH

L1:

SUBAL,BY1

()

MOVSD,AL

12.附加段有一块长50个字的数据区,首址为DEST,现将数据区初始化为0FFFFH。

LEADI,DEST

MOVCX,50*2

CLD

MOVAL,0FFH

13.下面是某数据段定义,在表中标出各字节单元的值,并回答问题。

DATASEGMENT

PADB1

PBDW5

PPEQU2

PCDBPPDUP(0)

DATAENDS

偏移

+0

01H

+1

05H

+2

00H

+3

+4

TYPEPA=()TYPEPB=()

SIZEPA=( )SIZEPB=()

SIZEPC=()

14.源程序如下:

MOVCL,4

MOVAX,[2000H]

SHLAL,CL

SHRAX,CL

MOV[2000H],AX

试问:

①若程序执行前,数据段内(2000H)=09H,(2001H)=03H,则执行后有(2000H)=_____,(2001H)=______。

②本程序段的功能_________________________。

15.阅读程序,并完成以下要求(10分)

MOVCL,04H

MOVDX,1234H

MOVAX,5678H

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

A)(DX)=     ,(AX)=    

B)由上面的结果可以看出该程序的功能是:

                 

16.源程序如下:

(6分)

MOVCX,9

MOVAL,01H

MOVSI,1000H

NEXT:

INCSI

SHLAL,1

LOOPNEXT

①执行本程序后有:

AL=_____;

SI=______;

CX=______;

②本程序的功能是______________________________。

17.设某数据段:

ORG20H 

NUM1=8 

NUM2=NUM1+10H 

DA1DB'

COMPUTER'

DB0AH,0DH 

COUNTEQU$-DA1 

DA2DW'

CO'

,'

MP'

UT'

ER'

试回答:

(1)DA1的偏移地址是:

_________________ 

(2)COUNT的值是____________________________ 

(3)DA2+5字节单元的内容是______________________ 

18.从BUF开始的11个单元中存放着11个整数,找出这11个数中正数并且是偶数的个数存入R中。

BUFDB–2,5,-3,6,100,0,-20,-9,8,-110,21

N=

RDW?

CODESEGMENT

BEGIN:

MOVAX,DATA

LEABX,BUF

MOVCX,N

LOPA:

CMP[BX],BYTEPTR0

TEST[BX],BYTEPTR1

INCAX

NEXT:

DECCX

MOVR,AX

MOVAH,4CH

INT21H

CODEENDS

END

19.对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?

为什么?

DTSEGSEGMENT|DTSEGSEGMENT

ORG10H|ORG10H

DATA1DB72H|DATA1DW7204H

DB04H|DTSEGENDS

DTSEGENDS|

()。

20.内存单元初始化内容为:

(2000H:

2A00H)--(2000H:

2A02H)分别为0FH、0EH、0DH,(2000H:

2A10H)--(2000H:

2A12H)分别为09H、08、07H。

执行下列程序后,请填写存储单元的内容:

MOVAX,2000H

MOVDS,AX

MOVES,AX

MOVSI,2A10H

MOVDI,2A00H

MOVCX,3

L:

MOVAL,[DI]

MOVSB

LOOPL

HLT

(1)2000H:

2A00H=  。

(2)2000H:

2A11H=   。

(3)2000H:

2A12H=   。

六.简答题

1.有变量定义的伪指令如下:

NUMSDW18DUP(4DUP(5),23)

VARDB'

HOWAREYOU!

'

0DH,0AH

NUMS、VAR变量各分配了多少存储字节?

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

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

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

3.ARYDW10DUP(?

) 

MOVAL,TYPEARY 

.;

MOVBL,LENGTHARY 

MOVCL,SIZEARY 

上述MOV指令序列执行后的结果是什么?

4. 

已知某数据段定义如下:

DSEGSEGMENT  

ORG00H

DAT1DW 

,26 

ORG06H

DAT2DW 

5678H

DB‘AB’

DSEGENDS 

要求:

用内存分配示意图,说明该数据段的存储器分配情况。

5.读程序,并回答问题

TABLEDB0,1,4,9,16,25,36,49,64,81,100

XADDB3

YADDB?

STACKSEGMENTSTACK'

STACK'

STADB16DUP('

STACKENDS

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETTABLE

MOVAH,0

MOVAL,XAD

ADDBX,AX

MOVAL,[BX]

MOVYAD,AL

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

RET

ENDSTART

(1).在存储器中分别为table、xad、yad、sta分配多少字节单元?

(2).程序运行后,xad、yad,单元中的值为多少?

屏幕上显示的字符是什么?

6.下面的程序是将表中元素按值的大小升序排序。

要求填空

(1)和

(2)使程序按预定目标运行;

(3).程序运行后,显示结果为什么?

ASSUMECS:

CODE

STAR:

JMPSSTT

ASCIIDB'

GFBACXYD6291'

$'

COUNT=$-ASCII-2

SSTT:

MOVAX,CS

MOVDS,AX

MOVDL,COUNT

MOVDH,1;

设交换标志=1

XORBX,BX

L0:

ORDH,DH

JZL3

MOVDH,0

MOVCX,COUNT

SUBCX,BX

MOVSI,OFFSETASCII

L1:

MOVAL,[SI]

INCSI

CMPAL,[SI]

JBEL2;

小于等于转

XCHGAL,[SI]

(1)MOV[DI-1],AL

MOVDH,1

L2:

LOOP

(2)L1

INCBX

DECDL

JNZL0

L3:

MOVDX,OFFSETASCII

MOVAH,9

INT21H

MOVAH,4CH

INT21H;

返回DOS

CODEENDP

ENDSTAR

7.阅读下面的程序,回答问题

.MODELSMALL

.386

.STACK

.DATA

STRINGDB'

AssembleLanguageispowerful'

N=$-STRING

NEWSTRDBNDUP(0)

.CODE

.STARTUP

MOVCX,N

LEASI,STRING

LEADI,NEWSTR

.REPEAT

MOVAL,[SI]

.IF(AL>

='

a'

)&

&

(AL<

z'

SUBAL,32

.ENDIF

MOV[DI],AL

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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