【汇编语言程序设计】期末考试-试卷及参考答案_第1页
【汇编语言程序设计】期末考试-试卷及参考答案_第2页
【汇编语言程序设计】期末考试-试卷及参考答案_第3页
【汇编语言程序设计】期末考试-试卷及参考答案_第4页
【汇编语言程序设计】期末考试-试卷及参考答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程编号:H61030005课程名称:汇编语言程序设计考试形式:闭卷学院:信息工程专业:计算机科学与技术考试日期:题号一二三四五六七八九十总分累分人签名题分2012182030100得分考生注意事项:1、本试卷共7页,请查瞧试卷中就是否有缺页或破损。如有立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸与草稿纸带出考场。一、单项选择题(每小题2分,共20分)1。一个有128个字得数据区,它得起始地址为12ABH:00ABH,请给出这个数据区第一个字单元得物理地址就是(A)。A。12B5BH;B。12B6BH;C.12C59H;D.12BFEH。2.在下列指令得中,不能实现把AX寄存器内容清零得指令就是(C)。SUBAX,AX;B.XORAX,AX;C.ORAX,0000H;D.ANDAX,0000H。3。条件转移指令JNE得测试条件为(A).A。ZF=0;B.CF=0;C.ZF=1;D。CF=1。4。8086CPU在基址加变址得寻址方式中,变址寄存器可以为(D)。A。BX或CX;B.CX或SI;C.DX或SI;D。SI或DI。5.设(AX)=1000H,NEGAXNOTAX【汇编语言程序设计】期末考试—试卷及参考答案执行上述两条指令后,正确得结果就是(B)。A.(AX)=1001H;B.(AX)=0FFFH;C。(AX)=1000H;D.(AX)=0111H。6。串指令中得目得操作数地址一定就是由____A__提供。()A。ES:[DI];B。SS:[BP];C.DS:[SI];D.CS:[IP]。7.将DX得内容除以2,正确得指令就是(C).A.DIV

2;B.DIV

DX,2;C.SAR

DX,1;D。SHL

DX,1。8、用户为了解决自己得问题,用汇编语言所编写得程序,称为(B)。A。目标程序;B。汇编语言源程序;C.可执行程序;D。汇编程序。9.用一条指令仅实现将AX←BX+SI得方法就是(D).XCHGAX,[BX][SI];MOVAX,[BX+SI];C.LEAAX,BX[SI];D.LEAAX,[BX][SI].10.设SP初值为2000H,执行指令“PUSHAX”后,SP得值就是(C)。A.1FFFH;B。1998H;C。1FFEH;D.2002H。1、A2、C3、A4、D5、B6、A7、C8、B9、D10、C二、指出下列指令得出错原因,并改正。(每小题2分,共12分)MOVBX,DL;操作数类型不匹配,改正为:MOVBL,DL或MOVBX,DXMOVCS,AX;代码段寄存器CS不能作目得操作数,改正为MOVDS,AXADDAX,DS;段寄存器DS得内容不能作为加法指令得操作数,改正为MOVBX,DSADDAX,BXTESTBX,[CX];不能使用CX实现寄存器间接寻址,改正为MOVSI,CXTESTBX,[SI]SUB[BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数得数据类型不确定,改正为:MOVAX,[BX]SUBAX,[BP+SI]或:MOVAL,[BX]SUBAL,[BP+SI]6。SHLDX;没有给出移位次数,改正为SHLDX,1或SHLDX,CL三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令得作用!每空3分,共18分)在表TABLE处存放着N个无符号字节数,求表中前10个字节数得总与并保存在AX寄存器中。如果总与值超过AX寄存器得容量,则置AX寄存器内容不变。请在程序中得空格处填入适当指令使其完整。LEA

BX,TABLE

MOV

CX,10

MOV

SUM,AX;将AX得原值保存在SUM单元中MOVAL,00HMEXT:(1)ADDAL,[BX];实现将表TABLE中得数据按字节累加到AL中ADC

AH,0

JNC

DONE(2)MOV

AX,SUM;总与值超过AX寄存器得容量,恢复AX得原值JC

EXITDONE:INC

BX(3)LOOPNEXT;将计数器CX减1,并判断就是否继续下一次循环EXIT:HLTBUFFER为起始地址得存储区域中存放有100个字节数据,现将其首、尾颠倒过来,重新排放这100个字节数据。请在程序中得空格处填入适当得指令使其完整。MOV

CX,32H;循环50次LEA

SI,BUFFERMOV

DI,SI(1)ADDDI,99;DI指向最后一个字节数据得存储单元得偏移地址NEXT:MOV

AL,[SI](2)XCHGAL,[DI];交换SI与DI所指向单元得内容MOV

[SI],AL(3)INCSI;使指针SI加1,指向下一个字节得数据DEC

DILOOP

NEXTHLT四、程序分析题(每小题4分,共20分)设(AX)=X,X就是无符号数且0≤X〈6000,分析下面程序段,回答问题;SHLAX,1;实现X乘2MOVBX,AXSHLAX,1SHLAX,1ADDAX,BX该程序段得功能就是什么?实现无符号数X乘10,结果存放在AX寄存器中.——2分该程序段执行完后,(AX)=10X,(BX)=2X。-—2分现有一子程序段:SUB1

PROCTEST

AL,80HJE

PLUSTEST

BL,80HJNE

EXITOJMP

XCHANGEPLUS:TEST

BL,80HJE

EXITOXCHANGE:XCHG

AL,BLEXITO:RETSUB1

ENDP试回答:(1)子程序得功能就是什么?答:子程序得功能就是判别AL与BL中得数就是否为异号数,当为异号时交换,否则不变.(2)若调用子程序前(AL)=9AH,(BL)=77H,则返回主程序时,(AL)=__77H____,(BL)=_9AH__。请回答:该程序段占有得存储单元字节数就是多少?画出所分配得存储区得示意图、请回答:该程序段占有得存储单元字节数就是多少?画出所分配得存储区得示意图、答:8个字节,0020H12HDA100H23H000024H11HDA221H0025H31HDA332H符号名DA4得值就是多少?符号名DA5得值就是多少?答:DA4=2,DA5=1234HDATA

SEGMENT

ORG

0020H

DA1

DW

12H,23H

DA2

DB

11H,21H

DA3

DB

31H,32HDA4

EQU

$-DA3DA5

EQU

1234HDATA

ENDS阅读如下程序:ADRR

DB

XXH,XXH,……,XXH;定义得字节数组元素NUM

EQU

$-ADRRRET_VLAUE

DW?…

MOV

CX,NUMMOV

BX,—1NEXT:INC

BXCMP

ADRR[BX],0LOOPNZ

NEXTJZ

DONEMOV

BX,OFFHDONE:MOV

RET_VLAUE,BXHLT请问:(1)该程序完成得功能就是什么?功能:在以ADRR为起始地址得数组中,查找第一个就是0得数据.(2)程序执行后指出RET_VLAUE单元中得内容就是什么?若找到,则将第一个就是0得数据在数组中得偏移量送入RET_VLAUE单元中;若无0数据,则将0FFH送入RET_VLAUE单元中.阅读如下程序段,回答所提出得问题,假定X1,X2,…,XN为无符号数。ORG

100HBLOCK

DW

X1,X2,…,XNCOUNT

EQU($-BLOCK)/2RESULT

DW

COUNT,?LEA

BX,BLOCK—2MOV

CX,RESULTXOR

AX,AXGO_ON:ADD

BX,2CMP

AX,[BX]JAE

NEXTMOV

AX,[BX]NEXT:LOOP

GO_ONMOV

RESULT+2,AX程序段执行完,回答下述问题:RESULT+2字存储单元得内容=MAX(X1,X2,…,XN);BX=100H

+

2×(COUNT-1);程序循环次数=COUNT。五、编写程序(30分)得分评阅人1。编写一程序,在letter为首地址得26个单元中依此存放字母‘A’、‘B’、……‘Z’。(本小题8分)dataSEGMENTletterDB26DUP(?)countEQU$-letterdataENDScodeSEGMENTASSUMEcs:code,da:datastart:movax,datamovds,axmovcx,countleasi,lettermoval,‘A’next:mov[si],alincalincsiloopnextmovah,4chint21hcodeendsendstart2.以Buffer为首地址得存储区,存放有长度为N有符号字数组,编写一程序求出其中负数得平均值(所有负数得与>-32768),并存放在M_average单元中。(本小题10分)dataSEGMENTBufferDWXXXX,XXXX,……,XXXX;N个字countEQU($-Buffer)/2M_averagedw?dataENDScodeSEGMENTASSUMEcs:code,da:datacwdidivbxcwdidivbxmovM_average,ax;存负数得平均值movah,4chint21hdataendsendstartmovds,axmovcx,countleasi,Bufferxorax,ax;存负数得与movbx,ax;存负数得个数next:testwordptr[si],8000Hjego_onaddax,[si]incbxgo_on:addsi,2loopnext3.从键盘接收一串不多于99个字符得字符串,对其进行分类统计,显示其中数字字符个数、大写英文字母个数、小写英文字母个数、以及其她字符得个数。要求使用子程序结构;数字字符得ASCII码为30H……39H、大写英文字母得ASCII码为41H……5AH、小写英文字母得ASCII码为61H……7AH.(本小题12分)dataSEGMENTMSGDB0DH,0AH,‘输入一串字符:$’MSG1DB0DH,0AH,‘大写字母个数:$’MSG2DB0DH,0AH,‘小写字母个数:$'MSG3DB0DH,0AH,‘数字符号个数:$’MSG4DB0DH,0AH,‘其它符号个数:$’BUFFERDB99DB0DB99DUP(?)BIGDB0;大写字母个数LITTLEDB0;小写字母个数DIGDB0;数字符号个数OTHERDB0;其它符号个数dataENDScodeSEGMENTASSUMEcs:code,da:datastart:movax,datamovds,axleadx,MSGmovah,9;9号功能调用显示提示信息int21hleadx,BUFFERmovah,10;10号功能调用从键盘接收一串字符int21hmovcl,BUFFER+1;实际从键盘接收字符个数movch,0leasi,BUFFER+2again:cmpbyteptr[si],30Hjbotherscmpbyteptr[si],39Hjbedigitalscmpbyteptr[si],41Hjbotherscmpbyteptr[si],5AHjbebigscmpby

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论