《汇编语言程序设计》期末复习题及答案.docx

上传人:b****8 文档编号:9928428 上传时间:2023-05-22 格式:DOCX 页数:18 大小:33.96KB
下载 相关 举报
《汇编语言程序设计》期末复习题及答案.docx_第1页
第1页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第2页
第2页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第3页
第3页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第4页
第4页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第5页
第5页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第6页
第6页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第7页
第7页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第8页
第8页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第9页
第9页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第10页
第10页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第11页
第11页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第12页
第12页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第13页
第13页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第14页
第14页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第15页
第15页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第16页
第16页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第17页
第17页 / 共18页
《汇编语言程序设计》期末复习题及答案.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《汇编语言程序设计》期末复习题及答案.docx

《《汇编语言程序设计》期末复习题及答案.docx》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》期末复习题及答案.docx(18页珍藏版)》请在冰点文库上搜索。

《汇编语言程序设计》期末复习题及答案.docx

《汇编语言程序设计》期末复习题及答案

汇编语言程序设计》期末复习题及答案

一、选择(30题)

1.下列是8位带符号二进制数的补码,其中最大的是(B)。

B、00000001

2.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现

(C)

C、占内存空间大,但速度快

3.数据定义为:

EEDB3,4

CCDW3456H,6789H

执行指令“MOVCXWORDPTREE+1'后,(CX=(B)

B、5604H

4.有如下指令序列:

MOVAL,95H

MOVCL,2

SARAL,CL

上述指令序列执行后,AL的内容是(D)

D、0E5H

5.设A=186io,B=273s,C=0B^,把这三个数看成无符号数,则它们之间的关系是(D)

D、A

6.用一条指令实现寄存器BX和SI的内容相加,并将结果送入AX中,这条指令是(D)

D、LEAAX,[BX][SI]

7.要从端口1234H中读入8位数据,其指令应是(C)

C、MOVDX,1234H

INAL,DX

&循环控制指令LOOPNZ/LOOPNE续执行循环的条件是(B)

B、CX^0且ZF=0

9.8088/8086存储器分段,每个段不超过(D)

D、64K个字节

10.表示过程定义结束的伪指令是(A)

A、ENDP

11.用来存放下一条将要执行的指令代码段地址的段寄存器是(D)

D、CS

12.假定(SS)=1000H,(SP)=0100H,(AX)=5609H,执行指令PUSHAX后,存放数据

56H的物理地址是(D)

D、100FFH

13.执行“SUBAX,[BP][DI]”指令,取源操作数时,使用的物理地址表达式是(A)

A、16*SS+BP+DI

14.设AX中有一带符号数8520H,执行“SARAX,1”指令后,AX中的值是(C)

C、0C290H

15.设(BX=1234H,(DS=2000H,(21234H)=5678H,则指令“LEASI,[BX]”执行

后的结果是:

(B)

B、SI=1234H

16.测试BL中的数是否为负数,若为负数则转移至AA1处,横线处的指令应为(A)

A、JNE

17.设DF=Q(SI)=20H,(CX)=10,执行“REPLODSW指令后,SI中的内容是(C)

C、34H

18.在程序执行过程中,IP寄存器中始终保存的是(B)

B、下一条指令的首地址

19.设SP初值为2000H,执行指令“POPAX'后,SP的值是(A)

A、2002H

20.若AX=3500HCX=56B8H当ANDAXCX指令执行后,AX=(A)

A、1400H

21.汇编源程序时,出现语法错误的语句是(A)

A、MOVDS,1200H

22•将数据1234H存放在存储单元中的伪指令是(C)

C、DATA1DB34H,12H

23.下面指令执行后,可能改变AL寄存器内容的指令是(D)

D、ANDAL,BL

B、寄存器间接寻址

25•用户为了解决自己的问题,用汇编语言所编写的程序,称为(B)

B、汇编语言程序

26.用DOS功能调用时,子功能调用的编号应放在(C)

C、AH

27.提供串指令中目的操作数地址的是(C)

C、ES:

[DI]

28.在寄存器间接寻址方式下,能够提供有效地址的寄存器有(B)

B、BXBP,SI,DI

29.已知某操作数的物理地址是2117AH则它的段地址和偏移地址可能是(A)

A、2025:

0F2A

30.中断向量表中的每个中断向量所占内存空间为:

(B)

B、4个字节

、填空(30题)

1.在用直接寻址方式寻址操作数时,系统对段地址的默认值在段寄存器DS中。

参见P40

2.与指令“NEGAX”功能等效的两条指令依次是NOTAX和INCAX。

参见P85、94、84

3.语句“VARDB3DUP(3,3DUP(3))”经过汇编后应分配12个字节单元。

参见P58

4.指令“MOVAX,SEGVAR'的执行,是把变量VAR的段地址送到AX中。

参见P62

5.设(DS=1000H,(ES)=2000H,(SS)=3000H,(BP)=4000H。

计算下列各指令中源操作数的物理地址:

MOVAX[1000H]物理地址11000H

MOVAXES:

[BP]物理地址24000H

参见P29

参见P5659

7•在做乘法运算时,如果是做字运算,乘积放在DX和AX_两个寄存器中,做除法

运算时,若做字节运算,余数放在AH中,商放在AL中。

参见P86、87

&用以访问存储器操作的地址表达式中,只要出现BP寄存器,系统就默认以段寄存

器SS的内容作为存储器操作数的段地址。

参见P40H44

9•在数据段或代码段的最开始,常用伪指令“ORGn”来定义本段的偏移地址初值,该

初值的范围是OOOOH~FFFFH

参见P6628

10•指令“CWD能实现对某寄存器中内容进行扩展,该寄存器是:

AX

参见P89

11.8088/8086CPU能寻址的最大存储空间为1MB因此CPU的地址总线是J0_条。

参见P28

SI中,目的串首地址存

12.在应用串处理指令MOVS时,源串首地址存放在寄存器

 

参见P31、32

三、判断题(15题)

1.SHLAL,2

2.INC2

3.ADDBX1

志位DF控制地址自动增减,数据串的长度存放在寄存器CX中。

参见P125126

13.程序状态字PSW中的ZF位,当结果为0时,ZF=,结果为1时,ZF=_0

参见P33

214,当把它

14•十六进制数0D6H当把它看作无符号数时,它表示的十进制正数为看作带符号数时,它表示的十进制负数为-42。

参见P22、23

15.IBMPC机中用来存放段地址的段寄存器有四个:

CS、DS、SS、ES

(错)参见P952改为CL

(错)参见P84、83不能用立即数

(对)参见P83

4.

MOV[SI][DI],BX

参见

P44

5.

SUBBXCL

参见

P84

BX与CL数据宽度不一1

6.

OUT34HAL

参见

P170

7.

INAL,0AH

参见

P169

8.

MOVCX[SP]

参见

P42

SP不能做间址寄存器

9.

MULAL

参见

P86、

87

10

.SUBBX,BP

参见

P84

11

.MOVDSSEGVARY

参见P62、46SEGVARY

是立即数,

DS不能接受立即数

12

.MOVVARY[SI],ES:

BL

参见P40对寄存器不能使用段跨越前缀

13

.CMPBLOCK[100H]

参见P85不能对两个内存单元直接进行比较

14

.宏调用时实元和哑元的个数可以不一致

改。

)参见P161

15

.REPSTOSB

)参见P127

四、写程序段(9题)

1.计算8*9,并将乘积送SI。

(参见P87,例5.10,考查对乘法指令的掌握情况)

moval,8

movbl,9mulblmovsi,ax

2•计算35/6,商存于BL中,余数存于CL中。

(参见P88,例5.13,考查对乘法指令的掌握情况)

movax,35

movbl,6

divbl

movcl,ah

3.输入一个字母,然后输出它的后继字母(不考虑输入字母是Z的情况)。

(参见P102第6题及P186,考查对1号、2号功能调用的掌握)

movah,O1h

int21h

incal

movdl,al

movah,02h

int21h

4•从端口35H读入一个字节数据,将该数的第3位置1后(其余位不变),再写回端口

35H。

(说明:

最低位为第0位)

(参见P178,第2道问答题,考查对I/O指令的掌握)

inal,35h

oral,08h

out35h,al

5•定义数据段NUM数据段中的数据按下列要求依次存储:

(1)变量X,类型为字节,初值为17;

(2)数组变量M,类型为字,所占空间为100H个单元;

(3)变量MSG存储字符串"LUCKY"。

(参见P79,问答题的第2小题及P181,考查对段定义伪操作的掌握)

NUMsegment

Xdb17

Mdw100hdup(?

MSGdb‘LUCKY'

NUMends

6•寄存器BX中存放着一个带符号数,求出其绝对值,结果还放在BX中。

(参见P107,例6.3,考查对CMPNEG指令的掌握)

cmpbx,0

jgL1

negbx

L1:

7•对存放在(DX,AX)中的双字数据作求补运算。

(参见P83,例5.2及P85,例5.7,考查对双精度数的操作)

notdx

notax

addax,1

adcdx,0

&计算5!

结果存于寄存器SI中。

(参见P107,例6.4,考查对循环指令的掌握)

movcx,5

moval,1

movbl,1

L1:

mulblincblloopL1movsi,ax

9.定义一个名字为ADDXYZ的宏,实现WX+Y+Z。

(注:

所有数据均为字类型)

(参见P166,编程题第4题及P201,考查对宏定义的掌握)

ADDXYZMACROX,Y,Z,W

movax,xaddax,yaddax,zmovw,ax

endm

五、写程序(9题)

1•从键盘输入一个字符串(长度不超过30),统计字符串中非数字的个数,并将统计的

结果存入字单元COUNTS,用EXE格式实现。

(参见P152〜P154,考查字符数组、比较指令、循环等)

datasegment

strdb30,?

30dup⑺

countdb0

dataends

codesegment

assumecs:

code,ds:

data

mainprocfar

start:

pushdsmovax,0pushax

movax,datamovds,axleadx,str

movah,0ah

int21h

movcl,str+1

movch,0

movsi,2

L3:

cmpstr[si],30h

jaeL1

inccount

jmpL2

L1:

cmpstr[si],39h

jbeL2

inccount

L2:

incsi

loopL3

ret

mainendpcodeends

endstart

2•统计一个16位二进制数中1的个数,并将结果输出,用COM格式实现。

(参见P119,考查COM格式文件、移位指令、跳转指令)

 

codesegment

org100h

assumecs:

code

mainprocnearstart:

movbx,0a39h

movsi,0

movcx,16

next:

shrbx,1

jnc11

incsi

11:

loopnext

movdx,siadddx,30hcmpdl,3ahjb12

adddl,7

l2:

movah,02h

int21h

movax,4c00h

int21h

mainendpcodeendsendstart

3•从键盘输入两个一位十进制数,求它们的和,并将结果以十进制形式输出。

(只考虑和小于10的情况)

(参见P156第6题及P200,考查1号功能调用、2号功能调用、字符的输出)

codesegmentassumecs:

codemainprocfarstart:

pushdsmovax,0

pushaxmovah,01int21hmovbl,almovah,01

int21h

movbh,alsubbx,3030haddbl,bhmovdl,bladddl,30hmovah,02int21hret

mainendpcodeendsendstart

4•从键盘输入一个十进制个位数,在屏幕上显示相应数量的该数。

例如,输入3,屏幕上将显示“333”。

(参见P123第6题及P193,考查1号功能调用、字符如何变成数值、LOOP旨令)

codesegmentassumecs:

codemainprocfarpushdsmovax,0

pushaxmovah,01hint21h

movbl,al

subal,30h

 

cbw

movcx,ax

L1:

movah,02h

movdl,bl

int21h

5.求100以内所有奇数的和,存于字变量

(参见P143,例8.6,考查循环指令)

datasegment

xdw?

dataends

codesegment

assumecs:

code,ds:

data

mainprocfar

sta比

pushds

movax,0

pushax

movax,data

movds,ax

loopL1

ret

mainendp

codeends

endmain

X中。

movax,0movbx,1movcx,50

L1:

addax,bxaddbx,2loopL1movx,axret

mainendpcodeendsendstart

6•将BX中的数以二进制形式在屏幕上显示出来。

(参见P123第2题及P189,考查移位指令、跳转指令、数值的输出、

2号功能调用)

codesegment

assumecs:

code

mainprocfar

start:

movbx,1234hmovcx,16

L1:

movdl,30hshlbx,1jncL2incdl

L2:

movah,02h

int21h

loopL1movax,4c00hint21h

mainendpcodeendsendstart

7•字节数组X中存放着0~F共16个十六进制数,请将这些数以十六进制形式显示在屏幕上。

(参见P115,例6.9,考查对数组的使用、数值的输出、2号功能调用、循环指令)

datasegment

db

 

int21h

incsi

loopL1

movax,4c00hint21h

mainendpcodeendsendstart

0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fhdataends

codesegment

assumecs:

code,ds:

data

mainprocfar

start:

movax,data

movds,ax

movcx,16

movsi,0

L1:

movdl,x[si]

adddl,30h

cmpdl,39h

jbeL2

adddl,7

L2:

movah,02h

 

&从包含10个无符号数的字节数组array

数以十进制形式显示出来。

(参见P123,第3题及P190〜191,

指令、数值的输出)

datasegment

arraydb45,67,75,82,90,29,80,26,63,59

mindb?

dataends

stacksegmentstack

dw10dup⑺

stackends

codesegment

assumecs:

code,ds:

data,ss:

stack

mainprocfar

start:

movax,data

movds,ax

movcx,10

moval,255

movsi,0

movdi,0

L1:

cmpal,array[si]

jbeL2

中选出最小的一个数存于变量MIN中,并将该

考查对数组的使用、循环指令、比较指令、除法

moval,array[si]L2:

incsi

loopL1movmin,almovah,0movcx,3

L3:

movbl,10divblmovdl,ahpushdxincdimovah,0cmpax,0jzL4loopL3

L4:

movcx,diL5:

popdxadddl,30h

movah,02h

int21h

loopL5

movax,4c00h

int21h

mainendpcodeendsendstart

9.设在起始地址为STRING的存储空间存放了一个字符串,统计字符串中字符数,并将结果存放到RESULT字节单元中。

(参见P134第5题及P196,考查串处理指令、比较指令)

A”的个

datasegment

stringdb'assembly'

lendw$-string

resultdb0

dataendscodesegment

assumecs:

code,ds:

data

mainprocfar

start:

movax,data

movds,ax

movcx,len

leasi,string

L1:

lodsbcmpal,'a'jnzL2incresult

L2:

loopL1movax,4c00hint21h

mainendp

codeends

endstart

 

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

当前位置:首页 > 临时分类 > 批量上传

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

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