PC技术机试模拟试卷10(共7题)_第1页
PC技术机试模拟试卷10(共7题)_第2页
PC技术机试模拟试卷10(共7题)_第3页
PC技术机试模拟试卷10(共7题)_第4页
PC技术机试模拟试卷10(共7题)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

PC技术机试模拟试卷10(共7套)(共7题)PC技术机试模拟试卷第1套一、程序设计题(本题共1题,每题1.0分,共1分。)1、请编制程序,其功能是:求I×J矩阵的转置矩阵(矩阵中元素为字节型),并计算转置矩阵的每一行元素之和,然后存放在每一行最后一个字单元中。例如:内存中有:04H,05H,06H,(第一行)01H,02H,03H(第二行)结果为:04H,01H,05H,00H,05H,02H,07H,00H,06H,03H,09H,00H部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已经给出的一段源程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。[试题程序]EXTRNLOAD:FAR,SAVE:FARNEQU30IEQU3JEQU10DSEGSEGMENTSOURCEDBNDUP(?)SRCDWSOURCERESULTDB(N+2*J)DUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,SS:SSEG,DS:DSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVES,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD********BEGIN********LEASI,SOURCELEADI,RESULTMOVBX,1;第一列LPJ:MOVCX,0;累加和MOVDX,1;第一行LPI:MOVAL,[SI]ADDCL,AL(1)STOSBADDSI,10INCDX(2)JBELPIMOV[DI],CX(3)INCSRC;下一列MOVSI,SRC(4)CMPBX,JJBE(5)********END********LEADX,RESULTLEASI,NAME1MOVCX,(N+2*J)CALLSAVERETSTARTENDPCSEGENDSENDSTART标准答案:(1)ADCCH,0(2)CMPDX,I(3)ADDDI,2(4)INCBX(5)LPJ知识点解析:暂无解析PC技术机试模拟试卷第2套一、程序设计题(本题共1题,每题1.0分,共1分。)1、请编制程序PROG1.ASM,其功能是:将内存中的20个有符号字节数据依次除以5,并按照四舍五入原则(即余数绝对值的2倍小于除数,则舍去)将商存入指定的内存区域。例如:内存中有:10H,01H,27H,00H,FFH,FSH,……结果为:03H,00H,08H,00H,00H,FEH,……部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU20XEQU5DSEGSEGMENTSOURCEDBNDUP(?)RESULTDBNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEC,SS:SSEC,DS:DSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVES,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD;***BEGIN***LEASI,SOURCELEADI,RESULTCONT:LODSBCBWMOVDL,XIDIVDL(1);余数为负数吗JNSPLUS(2);求绝对值ADDAH,AHCMPAH,DLJB(3)SUBAL,1JMPNEXTPLUS:ADD(4)CMPAH,DLJBNEXT(5)NEXT:STOSBCMPSI,NJBCONT;***END***LEADX,RESULTLEASI,NAME1MOVCX,NCALLSAVERETSTARTENDPCSEGENDSENDSTART标准答案:(1)CMPAH,0(2)NEGAH(3)NEXT(4)AH,AH(5)ADDAL,1知识点解析:每个数除以5之后首先判断余数是否为负,即比较AH与零;如果为负,要将AH中的值用NEG指令取绝对值后再执行后续操作,即计算余数绝对值的两倍,若小于商直接舍去(四舍),跳至NEXT(第3空)执行存储操作,否则加一(第五空,五入)后存储。PC技术机试模拟试卷第3套一、程序设计题(本题共1题,每题1.0分,共1分。)1、请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着红外数据通信系统传输的数据信息,其编码形式为:AACCXYXYDDEE,表示传送的数据为压缩BCD码XY。如AACCl212DDEE表示数据12。现要求编程实现解码,如果压缩BCD码不是以AACC开始或者不是以DDEE结束或中间两个BCD码不同,则此数据不解码。解码后的BCD码存入RESULT开始的内存区域。例如:原信息为:AAH,CCH,05H,05H,DDH,EEH,AAH,C8H,43H,43H,DDH,0EH,AAH,CCH,87H,87H,DDH,EEH,......结果为:05H,87H,……部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDB6*NDUP(0)RESULTDBNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX;置附加段寄存器LEADX,SOURCE;数据区起始地址LEASI,NAME0;原始数据文件名MOVCX,6*N;字节数CALLLOAD;从INPUT1.DAT中读取数据;****BEGIN****LEASI,SOURCEMOVDI,OFFSETRESULTMOVCX,(1)LPST:MOVDL,6MCLP1:MOVAL,(2)MOVBX,SICMPAL,0AAHJNZNEXTDINCSIMOVAL,[SI]CMPAL,0CCH(3)INCSIMOVAL,[SI]MOVDH,ALINCSIMOVAL,[SI](4)JNZNEXTDINCSIMOVAL,[SI]CMPAL,0DDHJNZNEXTDINCSIMOVAL,[SI]CMPAL,0EEHJNZNEXTDINCSIMOV[DI],DHINCDINEXTD:(5)MOVSI,BX(6);****END****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名起始地址MOVCX,N;字节数CALLSAVE;保存结果到OUTPUT1.DAT文件中RETSTARTENDPCODEENDSENDSTART标准答案:(1)6*N(2)[SI](3)JNZNEXTD(4)CMPDH,AL(5)INCBX(6)LOOPMCLP1知识点解析:依次读入某组数据的元素,并按题目要求与指定数比较,若不相等,则准备读入下一组数据;若相等,则继续读入数据并比较,一直到读完该数组数据,并保存到目的区。PC技术机试模拟试卷第4套一、程序设计题(本题共1题,每题1.0分,共1分。)1、请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着多个字节的数据,其中有压缩BCD码和其他数据。现按下列编码规则进行编码:在每个压缩BCD码前面加两个字节前缀代码BEH和CCH,并在其后加两个字节后缀代码DDH和EDH;如果不是压缩BCD码,则该数据前后均加两个代码0DH和0EH。编码后的数据存放到RESULT指示的内存区域。例如:原信息为:12H,D9H,86H,54H,……结果为:BEH,CCH,12H,DDH,EDH,0DH,0EH,D9H,0DH,0EH,BEH,CCH,86H,DDH,EDH,BEH,CCH,86H,DDH,EDH,……部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(0)RESULTDB5*NDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX;置附加段寄存器LEADX,SOURCE;数据区起始地址LEASI,NAME0;原始数据文件名MOVCX,N;字节数CALLLOAD;从INPUT1.DAT中读取数据;****BEGIN****LEASI,SOURCEMOVDI,OFFSETRESULTMOVCX,NCLP1:MOVAL,[SI]MOVBL,ALMOVAH,AL(1)ANDAL,0FOH(2)MOVCL,4(3)POPCXCMP(4)JACLP2CMPAH,9JACLP2MOV(5)INCDIMOVBYTEPTR[DI],0CCHINCDIMOVBYTEPTR[DI],BLINCDIMOVBYTEPTR[DI],0DDHINCDIMOVBYTEPTR[DI],0EDHJMPCLP3CLP2:MOVBYTEPTR[DI],0DHINCDIMOVBYTEPTR[DI],0EHINCDIMOVBYTEPTR[DI],BLINCDIMOVBYTEPTR[DI],0DHINCDIMOVBYTEPTR[DI],0EHCLP3:INCSIINCDI(6);****END****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名起始地址MOVCX,5*N;字节数CALLSAVE;保存结果到OUTPUT1.DATRETSTARTENDPCODEENDSENDSTART标准答案:(1)ANDAH,OFH(2)PUSHCX(3)RORAL,CL(4)AL,9(5)BYTEPTR[DI],0BEH(6)LOOPCLP1知识点解析:识别是否为压缩BCD码,若是,则利用堆栈的性质,在前面加BEH和CCH,在其后加DDH和EDH;若不是,则该数据前后均加0DH和0EH。最后编码后的数据存放到RESULT指示的内存区域。PC技术机试模拟试卷第5套一、程序设计题(本题共1题,每题1.0分,共1分。)1、编制一个程序,其实现的功能为:将内存中从SOURCE开始的区域里存放的20个字节的压缩BCD码转换为ASCⅡ码,每个压缩的BCD码转换为两个ASCⅡ码,并在最高位加上奇校验位,结果存放到RESULT开始的内存区域。例如:内存中有:73H,45H……则结果为:37H,B3H,34H,B5H……部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。【试题程序】EXTRNLOAD:FAR,SAVE:FARNEQU20DSEGSEGMENTSOURCEDBNDUP(?)RESULTDBN*2DUP(0)NAME0DB’INPUT.DAT’,0NAME1DB’OUTPUT.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:SSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXLEADX,SOURCELEASI,NAME0MOVCX,NCALLLOAD;********BEGIN********LEASI,SOURCELEADI,RESULTMOVCX,NAGAIN:MOVAL,[SI]MOVAH,AL(1)ANDAH,0FOH(2)MOVCL,4(3)POPCXADDAL,30H(4)NEXTORAL,80HNEXT:MOV[DI],ALINCDIADDAH,30H(5)NEXT1ORAH,80HNEXT1:MOV[DI],AHINCDIINCSILOOPAGAIN;********END********LEADX,RESULTLEASI,NAME1MOVCX,N*2CALLSAVERETSTARTENDPCSEGENDSENDSTART标准答案:(1)ANDAL,0FH(2)PUSHCX(3)SHRAH,CL(4)JNP(5)JNP知识点解析:题目要求将压缩的BCD码转换为两个ASCⅡ码,则首先要将BCD码分离出来,转换为非压缩的BCD码,然后转换为ASCⅡ码。最高位要求加奇校验位,所以要对转换以后的数据进行判断,如果数据中1的个数为奇数的话,则直接将其存储到结果存储区,否则要将数据的最高位变为1。程序中,已经将数据的高4位分离到AH寄存器中,所以还需要将低4位的数据分离到一个寄存器中,有后面的程序可以看出应该分离到AL寄存器中,所以第一个空白处应填写ANDAL,0FH。高4位数据分离到AH寄存器以后,需要将数据从高4位移到低4位来,变成非组合的BCD码。由于移动的位数为4,所以需要使用CL寄存器,而CX寄存器被用来作为程序循环次数的控制器,所以需要在使用CL寄存器之前对CX进行入栈和出栈操作,即第二个空白处应填PUSHCX。第三个空白处执行的是右移操作,所以应填为SHRAH,CL。执行完数据分离以后,将非组合的BCD码转换为ASCⅡ码,转换的时候只需要将非组合的BCD码与30H执行与操作即可。转换完成后,要在量高位加奇校验位,即要对转换后数据中1的个数进行判断,所以最后两个空应填JNP,表示当数据中1的个数为奇数时跳转到数据存储的程序段执行,否则将数据的最高位变为1,然后再进行存储。PC技术机试模拟试卷第6套一、程序设计题(本题共1题,每题1.0分,共1分。)1、请编制程序PROG1.ASM,其功能是;从SOURCE开始存放的21个8位有符号数(补码),相邻数的差距不超过-8~7,可采用差分压缩,其方法如下:第一个数据不变,其后数据取与前一数据之差值并用4位二进制补码表示,两个差值拼成一个字节,前一个差值放在高4位,后一个差值放在低4位。例如:原数据为:X[n]:23H,27H,2AH,29H,22H...压缩后为:Y[n]:23H,43H,F9H...部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的一段源程序使其完整(空白己用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU20DSEGSEGMENTLDW?SOURCEDWNDUP(?)RESULTDWNDUP(0)NAME0DB’INPUT1.DAT’,0NAME1DB’OUTPUT1.DAT’,0DSEGENDSSSEGSEGMENTSTACKDB128DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:SSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXLEADX,L;数据区起始地址LEASI,NAME0;输入文件名首址送SIMOVCX,2+N;输入字节数送CXCALLLOAD;从INPUT1.DAT中读取数据;****BEGIN****LEASI,SOURCELEADI,RESULTCLDMOVSB;Y[0]=X[0]XORBX,BX;FLAG=0MOVDX,N*2;计数ZTE:LODSBSUB(1);X[n]-X[n-1](2);FLAG=NOTFLAGJ(3)SWIMMOV4,CLMOVAH,ALJMPNEXTSWIM:(4)ORAL,AHSTOSBNEXT:(5)JNEZTE;****END****LEADX,RESULT;结果数据区首址送DXLEASI,NAME1;结果文件名首址送SIMOVCX,N;结果字节数送CXCALLSAVE;保存结果到文件OUTPUT1.DATRETSTARTENDPCSEGENDSENDSTART标准答案:(1)AL,[SI-2](2)XORBX,01H(3)Z(4)ANDAL,0FH(5)DECDX知识点解析:程序功能:为了进行压缩存储,把两个差值拼成一个字符,可采用标志(FLAG),当标志为0时,表示低4位:当标志为非0时,表示高4位。标志0与非0之间的转换不能用NOT指令来实现判断,因为这条指令完全不影响CPU标志寄存器的各个状态位。为了实现标志0与非0之间的转换,可以使用XORBX,01H。此外,在使用串操作指令时,应该注意其地址指针自动加1。PC技术机试模拟试卷第7套一、程序设计题(本题共1题,每题1.0分,共1分。)1、请编制程序,其功能是:内存中存放着由20个16位有符号整数组成的序列,求出该序列中的最小值和最大值。结果存放形式为,先按原顺序存放20个需处理的有符号整数,后跟该序列中的最小值和最大值(最小值在前,最大值在后)。例如:内存中有:8100H,0002H,0300H…结果为:8100H,0002H,0300H…(由20个16位有符号整数组成的原序列),结果的后面跟该序列中的最小值和最大值(最小值在前,最大值在后)。部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结

温馨提示

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

评论

0/150

提交评论