汇编语言练习题.docx

上传人:b****8 文档编号:12823438 上传时间:2023-06-08 格式:DOCX 页数:22 大小:32.44KB
下载 相关 举报
汇编语言练习题.docx_第1页
第1页 / 共22页
汇编语言练习题.docx_第2页
第2页 / 共22页
汇编语言练习题.docx_第3页
第3页 / 共22页
汇编语言练习题.docx_第4页
第4页 / 共22页
汇编语言练习题.docx_第5页
第5页 / 共22页
汇编语言练习题.docx_第6页
第6页 / 共22页
汇编语言练习题.docx_第7页
第7页 / 共22页
汇编语言练习题.docx_第8页
第8页 / 共22页
汇编语言练习题.docx_第9页
第9页 / 共22页
汇编语言练习题.docx_第10页
第10页 / 共22页
汇编语言练习题.docx_第11页
第11页 / 共22页
汇编语言练习题.docx_第12页
第12页 / 共22页
汇编语言练习题.docx_第13页
第13页 / 共22页
汇编语言练习题.docx_第14页
第14页 / 共22页
汇编语言练习题.docx_第15页
第15页 / 共22页
汇编语言练习题.docx_第16页
第16页 / 共22页
汇编语言练习题.docx_第17页
第17页 / 共22页
汇编语言练习题.docx_第18页
第18页 / 共22页
汇编语言练习题.docx_第19页
第19页 / 共22页
汇编语言练习题.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

汇编语言练习题.docx

《汇编语言练习题.docx》由会员分享,可在线阅读,更多相关《汇编语言练习题.docx(22页珍藏版)》请在冰点文库上搜索。

汇编语言练习题.docx

汇编语言练习题

一、单项选择题(共20题)

1.对于有符号的数来说,下列哪个值最大(D)

A:

0F8HB:

11010011BC:

82D:

123Q

2.下列有关汇编语言中标号的命名规则中,错误的是(D)

A:

通常由字母打头的字符、数字串组成B:

标号长度不能超过31个字符

C:

和$不能单独作为标号D:

.号不可位于标号首

3.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是(C)。

A.C+D=BB.A+D=B

D.A>C>DC.B=D

4.下列四个寄存器中,可作为十六位寄存器的是(C)

B.CLA.DL

D.BP.EBXC5.8088/8086存储器分段,每个段不超过(D)

A.64K个字B.32K个字节C.1兆个字节D.64K个字节

6.寻址指令MOVCX,[BX+DI+20]使用的是哪一种寻址方式(B)

A:

寄存器寻址B:

相对基址变址寻址

D:

变址寻址:

基址变址寻址C7.连接程序把汇编语言源程序生成的目标文件(.OBJ文件)转换成(B)。

A..OBJ文件B..EXE文件C..LST文件D..CRF文件

8.在程序运行过程中,确定下一条指令的物理地址的计算表达式是(A)。

A.(CS)×16+(IP)

B.(DS)×16+(DI)

C.(SS)×16+(SP)D.(ES)×16+(SI)

9.若AX=-15要得到AX=15应执行的指令是(A)

A.NEGAXB.NOTAX

C.INCAXD.DECAX

10.8086/8088系统执行传送指令MOV时(A)

A.不影响标志位B.影响DF方向标志

C.影响SF符号标志D.影响CF进位标志

11.执行下列程序后,(AL)=(D)H。

DATASEGMENT

TABDB‘0123456789'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETTAB

MOVAL,04

XLATTAB…

04AB.0400.

33CD.34.。

.下列指令中操作数在代码段中的是(A)12MOVAL,25H.AB.ADDAH,BL

.CMPBL,ALC.INCBYTEPTR[25H]DB)13.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用(XORC:

ANDA:

NOTB:

ORD:

)14.下列指令中段默认为堆栈段的是(C

,ES:

[SI][BX+SI+10]

B.ADDAXA.MOVAX,,[1000H],[BP][DI]D.MOVDXC.SUB[BX](C)。

=0AH,应执行的指令是.设BL=05H,要使结果BL15ANDBLB.A.NOTBL

XORBL,0FH.ORBL,0FHCD.。

16.表示一条指令的存储单元的符号地址称(A).变量BA.标号

C.偏移量D.类型

)微机系列,下列说法哪个是正确的(D17.关于8086/8088个二进制位组成,简称字。

一个存储单元由16A:

当存储一个字数据时,低字节放高地址位,高字节放低地址位。

B:

在内存空间中,可以无限分配段,且段的大小不受限制。

C:

段与段之间可以邻接,也可以重叠。

DD)18.下列关于堆栈的说法,错误的是(A:

以“先入后出”为原则。

B:

栈区最高地址单元的前一个单元为栈底。

SP寄存器动态跟踪栈顶位置。

C:

运行中:

压栈和弹出都是以字节为单位。

D(D)。

.分配给INT12H在中断向量表中的物理地址是1924HB..A12H

48H.36HD.C。

的区别是(B)INT21H的键盘输入功能1和功能820.DOS调用8不回显B.功能1回显而功能不回显而功能A.功能18回显

都回显1和功能8都不回显1和功能8D.功能.功能C(最后二题有备选答案)题)。

二、填空题(共27,一个带,其对应的一个无符号数是148.设一存储单元中的二进制代码是183H。

符号数是-108

~0000HFFFFH。

端口地址范围是系统中,.28086/8088I/O偏移地.38086/8088系统中,段内一个单元相对段的起始地址的距离称为

址,它小于64K。

4.8086/8088CPU内部用来存放段地址的寄存器有CS,DS,ES,SS。

5.在PC机中,使用SS、SP合成20位的物理地址,用以指向当前堆栈桟顶

的位置。

6.一个字单元由二个连续的字节单元组成,其中数据的低8位存放在低地

址单元、高8位存放在高地址单元。

7.在指令中直接给出操作数的寻址方式称为立即寻址方式。

8.设MASK为一个变量,在“MOVAX,MASK[SI+BX]”指令中,源操作数的寻址方式是

相对基址变址寻址方式,其物理地址是(DS)×16+(SI)+(BX)+OFFSET

MASK,目的操作数的寻址方式是

寄存器寻址方式。

9.若(SS)=1100H,(SP)=0150H,那么执行PUSHEAX指令后SP的内容是014CH,再执行POPCX指令后桟顶的物理地址是1114EH。

10.CPU执行“JMPBX”指令只改变IP,而不改变CS内容。

11.执行CALLNEARPTRSUBROUT时,在修改IP/EIP内容之前应该PUSHIP或PUSH

EIP。

12.STRINGDB‘ABCDEFG'

COUNTEQU$-STRING

COUNT的值是7,表示的意义是表示变量STRING所分配的字节数。

13.数据定义语句:

TABDW100DUP(?

执行MOVBX,LENGTHTAB指令后,BX的内容是100。

14.循环程序可由三个部分组成:

设置循环初始部分、循环体和循环控制部分。

15.在多个模块中传递参数的时候,在本模块中要使用另一个模块中的符号要用EXTRN

伪操作进行说明符号,本模块中的符号要提供给另一个模块使用要用

PUBLIC伪操作进行说明符号,

16.宏汇编的三个步骤是:

宏定义、宏调用和宏展开。

17.每种类型的中断都由相应的中断处理程序来处理。

18.下列程序段求数组FLD的平均值,结果在AL中。

请将程序填写完整(不考虑溢出)

FLDDW10,-20,30,-60,-71,80,79,56

LEASI,___FLD___

MOVCX,8

XORAX,AX

R1:

ADDAX,_[SI]____

ADDSI,2

LOOPR1

MOVCL,8

IDIVCL

HLT

19.MOVAX,1090H

SUBAX,4AE0H

JCL1

JOL2

JMPL3

上述程序执行后AX=___C5BO____,程序转向___L1____

20.假设寄存器AX=1234H,DX=0A000H

MOVBX,0

MOVCX,BX

SUBCX,AX

SBBBX,DX

MOVAX,CX

MOVDX,BX

上述程序段执行后AX=___OEDCCH____,DX=__5FFFH_____

21.MOVAX,234H

MOVCL,3

ROLAX,CL

DECAX

MOVCX,4

MULCX

此段程序执行完后,(AX)=__467CH_____,(CX)=___4____

22.DA1DB83H,72H,61H,94H,5AH

MOVCX,WORDPTR[DA1]

ANDCX,0FH

MOVAL,[DA1+3]

SHLAL,CL

上述指令序列执行后,AL=____OAOH___,CL=___03H____。

23.阅读如下程序片段

MOVAL,4CH

MOVBL,86H

ADDAL,BL

执行上述程序片段后,(AL)=0D2H,(BL)=86H,

CF=0,OF=0

24.以下程序求出首地址为BUF的M字数组的内容之和。

DATASEGMENT

BUFDWX1,X2,…,XM

COUNTEQU($一BUF)/2

SUMDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETBUF

MOVCX,COUNT

MOVAX,0

LOP1:

ADDAX,[BX]

ADDBX,2

LOOPLOP1

MOVSUM,AX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

25.以下程序完成将键盘输入的小写字母转换成大写字母并输出显示,直到输入字符“$”结束。

DATASEGMENT

ERRORDB“INPUTEXCEEDS‘a'~‘z',PLEASEINPUTAGAIN!

”,0DH,0AH,‘$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

NEXT:

MOVAH,1

INT21H

CMPAL,‘$'

JEEXIT

CMPAL,‘a'

JBERR

CMPAL,‘z'

JAERR

SUBAL,20H

MOVDL,AL

MOVAH,2

INT21H

JMPNEXT

ERR:

LESDX,ERROR

MOVAH,9

INT21H

JMPNEXT

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

26.下面子程序完成把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来。

BINTOHEXPROCNEAR

PUSHCX

PUSHAX

PUSHDX

MOVCH,4

ROTATE:

MOVCL,4

ROLBX,CL

MOVAL,BL

2

ADDAL,30H

CMPAL,3AH

1

ADDAL,7H

PRINTIT:

MOVDL,AL

MOVAH,2

INT21H

3

JNZROTATE

POPDX

POPAX

POPCX

RET

BINTOHEXENDP

备选答案:

①JLPRINTIT

②ANDAL,OFH

③DECCH

,置03中第位、第5位是否同时为1,如同时为1,则AH27.下面程序段是判断寄存器BLl。

否则AH置全MOVDL,BL

NOTDL2

JZZEROMOVAH,0FFH

1

ZERO:

MOVAH,0

NEXT:

备选答案:

①JMPNEXT

②TESTDL,28H

三、判断题(在正确的叙述或指令前打,错误的题前打)(共20题)

(X)1.PUSH5588H

(X)2.MOVDS,1720H

(X)3.ADDAX,CL

(X)4.ANDAX,[DX]

(X)5.MOVCS,0600H

(X)6.PUSH074CH

(X)7.ADDAX,CL

(X)8.ORBX,[CX]

(V)9IMULDX

(X)10.XORAL,BX

(X)11.MOV[DX],BX

(X)12.SUBEAX,[ECX*10+100]

(X)13.MOVDS,1200H

(X)14.XCHG256,[100H]

(V)15.OUTDX,AX

(X)16.LEAVAR,[BP+SI]

(X)17.NEG88

(V)18.INCWORDPTR[100H]

(V)19IMULDX

(X)20.XORAL,BX

四、简答题(共4题)

1.标志寄存器:

标志寄存器:

是8086/088中唯一按位操作的寄存器,该寄存器为16位,有效的标志位共9位。

其中,CF,PF,AF,ZF,SF,OF为状态标志,用于反映最近一次影响标志位的算术或

逻辑运算中运算过程、运算结果的一些性质;TF,IF,DF为控制标志,用于控制CPU对某些特定事件的处理方式以及CPU的工作模式。

2.逻辑地址:

逻辑地址:

由两个16位的地址分量构成,其中一个为段基值,另一个为偏移量,两个分量均为无符号数编码。

物理地址=段基值×16+偏移量.

3.下列程序段执行完后,SF、ZF、CF、OF的内容是什么?

MOVBX,4321H

ADDBX,1234H

SF=0ZF=0CF=0OF=0

4.下列ASCⅡ码串(包括空格串)依次存储在起始地址为CSTRING的字节单元中:

CSTRINGDB‘PERSONALCOMPUTER'

请编写指令将字符串中的第1个和第7个字符传给DX寄存器。

MOVDX,CSTRING

MOVDX,CSTRING+6

五、程序分析题(分析程序段总的功能或回答相关问题或运行结果)(共14题)。

1.阅读如下程序片段

MOVAL,4CH

MOVBL,0B5H

ADDAL,BL

执行上述程序片段后,(AL)=01H,(BL)=0B5H,CF=1,OF=0

2.阅读如下程序片段

MOVAL,0F3H

MOVDL,0C4H

ADDAL,DL

ANDAL,0FH

执行上述程序片段后,(AL)=7H,CF=0,OF=0,PF=0

3.阅读如下程序片段

MOVAL,7EH

MOVCL,04H

ROLAL,CL

执行上述程序片段后,(AL)=0F9H,(CL)=04H,CF=1,OF=无意义

4.阅读如下程序片段

MOVAX,0632H

MOVBX,0C202H

SUBAX,BX

INCAX

执行上述程序片段后,(AX)=4421H,(CF)=1,OF=0,PF=0

5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H

,MOVBX0024HLEABX,[BX]ORBX0,,ADCBX[BX]=0OF=0,PF=0(执行上述程序片段后,BX(,)=287AHCF,))=0064H.阅读如下程序片段,假设(SP6,0001HMOVAX0002H,MOVBXPUSHAX

PUSHBX

POPAX

POPBX

执行上述程序片段后,(AX)=0002H,(BX)=0001H,(SP)=0064H。

(CF)=0

7.DATASEGMENT

TABDW1,2,3,4,5

ENTRYDW2

DATAENDS

MOVBX,OFFSETTABADDBX,ENTRYMOVAX,[BX]MOVCX,TYPETABMOVDX,SIZETAB执行上述指令后,(AX)=3,(CX)=2,(DX)=2。

8.MOVAX,W

IMULX

MOVBX,Y

ADDBX,6

IDIVBX

MOVZ,AX

MOVR,DX

上述程序段中X,Y,Z,R,W均为有符号数的字变量,试说明上述程序段完成什么功能。

求数值表达式的值:

(W*X)/(Y+6)Z,余数R

9.

MOVAX,1234H

MOVCL,8

ROLAX,CL;这条指令执行后,(AX)=3412H

不变CFDECAX;这条指令执行后,MOVCX,4SF=1MULCX;这条指令执行后,

CMPDX,BX10.JGXJLY

CMPAX,CX

JAX

…X:

…Y:

中,上述程序段完成的功能是什么?

AX及BX、CXDX有两个双精度数、分别存储于、执行。

,则转向X执行,否则转向Y完成的功能是:

如果.>11.设有宏定义如下:

TRANSMACROBUF1,BUF2MOVAX,BUF1MOVBX,BUF2MOVBUF1,BXMOVBUF2,AXENDM进行宏扩请说明宏指令完成的功能是什么?

并将宏调用TRANSWORD_VAR1,WORD_VAR2展。

的内容互换。

BUF2宏定义完成的功能是:

将两个存储单元BUF1和的宏扩展是宏调用TRANSWORD_VAR1,WORD_VAR2MOVAX,WORD_VAR1MOVBX,WORD_VAR2MOVWORD_VAR1,BXMOVWORD_VAR2,AX12.分析下面程序段,回答指定问题:

XORAL,ALCALLSUBROUTMOVBL,ALCALLSUBROUTRCRAL,1…

SUBROUTPROCNEARNOTALJSNEXT

STC

NEXT:

RET

SUBROUTENDP

上述程序执行后,(AL)=80H,(BL)=0FFH。

13.试回答下面程序段执行后完成什么功能?

OLDSDB‘COMPUTER'

NEQU$-OLDS

NEWSDB‘COMPUTOR'

LEASI,OLDSLEADI,NEWSMOVCX,NCLDREPECMPSBJNZNEW_ADDRESSOLD_ADDRESS:

NEW_ADDRESS:

…执行,否则转到NEW_ADDRESS和NEWS比较字符串是否相同,若不相同则转到OLDS

OLD_ADDRESS.MOVCX,L14LEADI,ARRAYMOVAL,20HCLDREPNESCASBJNZNOT_FOUND…

NOT_FOUND:

…试回答上述程序段完成的功能是什么?

在长度为L的字符串ARRAY中查找空格,若有空格在顺序执行,否则转向NOT_FOUND。

六、计算题(共2小题)

1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?

二进制为01100100B,十六进制为64H

2.假设(DS)=0C00H,(BX)=0210H,对于指令MOVDS:

100H[BX],AL,其目的操作数的物理地址为多少?

EA=(BX)+0100H=0310H,物理地址=0C000H+0310H=0C310H

七、程序设计题(共4题)

1.试编写一程序片段,实现BL高4位与低4位相互交换

MOVCL,4

ROLBL,CL

2.试编写一程序片段,不使用乘除法指令,实现((AX)*5+14)/2的功能(AX中的数据理解为补码)

MOVBX,AX

MOVCL,2

SALAX,CL

ADDAX,BX

ADDAX,14

SARAX,1

3.D1DW?

D2DW?

定义了两个双精度数。

编写一条宏定义DSUB,完成双精度数D1减去双精度数D2,差存放在D2中,两个双精度数为变元。

DSUBMACROD1,D2

MOVAX,D1

MOVDX,D1+2

SUBAX,D2

SBBDX,D2+2

MOVD2,AX

MOVD2+2,DX

ENDM

DNEGMACROD1,D2

MOVEAX,D1

SUBEAX,D2

MOVD2,EAX

ENDM

4.现有下列数据段:

DATASECMENT

STR1DB‘ABCDEFGHIJKL'

COUNTEQU$—STR1

BUFDBCOUNTDUP(0)

DATAENDS

试用串指令编写一个完整的程序:

实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一个字符送到BUF的第一个单元)。

DATASECMENT

STR1DB‘ABCDEFGHIJKL'COUNTEQU$—STR1BUFDBCOUNTDUP(0)DATAENDSCODESEGMENTASSUMECD:

CODE,DS:

DATA,ES:

DATA

START:

MOVAX,DATAMOVDS,AXMOVES,AX1LEASI,BUF—LEADI,BUFMOVCX,COUNT

CLDSTD或LOP:

MOVSBLOP:

MOVSB

SUBSI,2ADDDI,2

LOOPLOPLOOPLOP

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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