资源描述:
《2012年计算机三级PC技术第五十四套上机试题及答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、2012年计算机三级PC技术第五十四套上机试题及答案来源:转载更新:2012-10-19编辑:evans 请编制程序,其功能是:内存中两个由7个ASCII字符组成的字符串进行如下操作:在原字符串之前加上字符#(23H);在原字符串之后加上字符*(2AH)及另外两个ASCII字符,这两个ASCII字符为原字符串中各字符(但不包括字符#和*)异或操作后的ASCII码(异或操作结果的高4位的ASCII码在前,低4位的ASCII码在后);最后加上回车符(0DH)及换行符(0AH)。 例如: 内存中有46H,41H,30H,2EH,34H,3DH,31H(第一个ASCII字符串) 46
2、H,41H,30H,2EH,34H,3DH,30H(第一个ASCII字符串) 结果为23H('#'),46H,41H,30H,2EH,34H,3DH,31H,2AH('*'), 32H,31H,0DH,0AH,23H,46H,41H,30H,2EH,34H,3DH, 30H,2AH,32H,30H,0DH,0AH 部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。 填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行
3、空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。 对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。 试题程序: EXTRNLOAD:FAR,SAVE:FAR NEQU14 STACSEGMENTSTACK DB128DUP(?) STACENDS DATASEGMENT SOURCEDBNDUP(?) RESULTDBN+12DUP(0) NAME0DB'INPUT1
4、.DAT',0 NAME1DB'OUTPUT1.DAT',0 DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATA,SS:STAC STARTPROCFAR PUSHDS XORAX,AX PUSHAX MOVAX,DATA MOVDS,AX LEADX,SOURCE;数据区起始地址 LEASI,NAME0;原始数据文件名 MOVCX,N;字节数 CALLLOAD;从'INPUT1.DAT'中读取数据 ;****BEGIN**** LEASI,0 LEADI,0 MOVBX,2;两个ASCII字符串 REPEAT:
5、MOVCX,7;第个字符串由7个ASCII字符组成 MOVAL,______________ MOVRESULT[DI],AL INCDI MOVAH,______________ CHAR:MOVAL,SOURCE[SI] MOVRESULT[DI],AL INCDI INCSI XORAH,AL LOOP_________________ MOVAL,______________ MOVRESULT[DI],AL INCDI MOVDH,2 MOVDL,AH;异或结果暂存在DL中 MOVCL,4;先将异或结果高4位转换成ASCII字符 SHRAH
6、,CL CHANGE:CMPAH,10;本行开始的4行语句将一个十六进制数转换为ASCII码 JLADD_0 ADDAH,'A'-'0'-10 ADD_0:ADDAH,'0' MOVRESULT[DI],AH INCDI DECDH JZEXT MOVAH,DL ANDAH,0FH JMPCHANGE EXT:MOVAL,______________ MOVRESULT[DI],AL INCDI MOVAL,______________ MOVRESULT[DI],AL INCDI DECBX JZ_________________ JMPRE
7、PEAT EXIT:NOP ;****END**** LEADX,RESULT;结果数据区首址 LEASI,NAME1;结果文件名 MOVCX,N+12;结果字节数 CALLSAVE;保存结果到文件 RET STARTENDP CODEENDS ENDSTART来源:-计算机三级考试