



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一题:ー、请编制程序,其功能是:将内存中由SOURCE指示的40个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域,存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素。例如:内存中有1EH,91H,74H,91H,42H,30H,81 8H,25H结果为06H,lEH,74H,42H,30H,l8H,25H,04H,91H,91H,81H,F3H试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU40STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(0)RESULTDBN+2DUP(0)NAMEODB'INPUT1.DAT,ONAME1DB'OUTPUTLDAT.ONDATADBNDUP(0)PDATADBNDUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX覆附加段寄存器LEADX,SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N;字节数CALLLOAD;从TNPUT1.DAT中读取数据ド***begin****LEASI,SOURCEMOVDI,OFFSETPDATA;PDATA为正数数组存放缓冲区首址MOVBX,OFFSETNDATAJMDATA为负数数组存放缓冲区首址XORDX,DXMOVCX,NCLDMAIN1:LODSBTESTAL, JZMAIN2INCDHMOV[BX],ALINCBXMAIN2:INCDLMOV[DI],AL;+INCDIMAIN3:MAIN1LEASI,PDATALEADI,RESULTMOV[DI],DLINCDIXORCX,CXMOVCL,DLMAIN4:MOVAL,MOV[DI],ALINCDIINCSILOOP MOV[DI],DHINCDIXORCX,CXMOVCL,DHMOVBX,OFFSETNDATAMAIN5:MOVAL,[BX]MOV[DI],ALINCDILOOPMAIN5二****end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N+2;字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第二题:ー、请编制程序,其功能是:内存中连续存放着10个无符号8位格雷码表示的数,现将此十个数转换成十个8位二进制数,结果存入内存,其转换方法为二进制数的最高位D7与格雷码的最高位G7相同,二进制数的其余七位DK(k=6,--,0)分别为格雷码的位GK(k=6,…,0)与二进制数的位DK+1(k=6,…,0)异或的结果。例如:内存中有00H,03H,2BH,67H,0CH,15H,54H,02H,D8H,C7H结果为00H,02H,32H,45H,08H,19H,67H,03H,90H,85H试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)濒序存放10个字节数RESULTDBNDUP(0);存放结果NAMEODB'INPUT1.DA「〇NAME1DB,OUTPUTl.DAT',0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAXQATAMOVDS,AXLEADX,SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N;字节数CALLLOAD;从TNPUT1.DAT中读取数据.****begin****LEASI,SOURCELEADI,RESULTMOVCX,10AGNO:MOVAL,[SI]MOVCX,8MOVBX,0AGNI:MOVAH,0SHLBL,1 AL,1RCI-AH,1CMPAH, JMPNEXTSET_ONE:ORBL,01HNEXT:MOV ,BLLOOPAGNIMOV[DI],BLINCSIINCDILOOPAGNO.****end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N;结果字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第三题:ー、请编制程序,其功能是:内存中连续存放着20个十六位二进制无符号数序列,请将它们排成升序(从小到大)。例如:内存中有7001H,7004H,700214…(假设后1フ个字均大与7004H)结果为7001H,7002H,7004H…(后跟17个字,按从小到大的顺序排列)试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU20STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDWNDUP(?)RESULTDWNDUP(0)NAME0DB'INPUT1.DAT,0NAME1DB'OUTPUT1.DAT*,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;数据区起始地址LEASI,NAME0源始数据文件名MOVCX,N*2;字数CALLLOAD;从リNPUT1.DAT中读取数据ド***BEGJN****LEASI,SOURCELEADI,RESULTMOVCX,NNEXTO:MOVAX,[SI]MOV[DI],AXADDSI, LOOP CLDMOVBXJM-1MALI:LEASI,RESULTMOVCX, NEXT:LODCMP[SI],AXJAECONTXCHG[SI], MOV[SI-2],AXCONT:LOOP MALI.****end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N*2;结果字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第四题:ー、请编制程序,其功能是:内存中连续存放着24个无符号二进制字序列,字的最高位为000,此序列对应某一信号在一段时间内的连续变化,现对第21个二进制字前的20个二进制字进行移动平均处理,其方法为:将要处理的字Xi用以它为开始的连续五个字的平均数(Xi+Xi+lXi+2Xi+3Xi+4)/5代替(余数舍去),得到新的20个无符号二进制字序列,结果存入内存。例如:内存中有0100H,0200H,0300H,0400H,0500H,0600H…结果为0300H,0400H…试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU24STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDWNDUP(?);顺序存放24个字RESULTDW20DUP(0);存放结果NAMEODB'INPUT1.DAT,ONAME1DB,OUTPUT1.DAT,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;数据区起始地址LEASI,NAMEO源始数据文件名MOVCX,NLOOPAGNO****卜:1^^LOOPAGNO****卜:1^^[)****LEADX,RESULT;结果数据区首址CALLLOAD;从TNPUT1.DAT中读取数据;****begin****MOVDl,0MOVSI,0MOVCX20MOVBX, AGNO:MOVAX,SOURCE[SI]PUSHSIPUSHCXMOV,AGNI:INCSIINCSIADDAX,SOURCE[SI]LOOPAGNIDIVBXMOVRESULTpiJ^iXINCDIPOPCXPOPSIINCSILEASI,NAME1;结果文件名MOVCX,40;结果字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第五题:ー、请编制程序,其功能是:内存中从SOURCE开始连续存放着21个八位有符号数(补码),其相邻两数之间差值不超过ー8至7。对这种变化缓慢的数据可采用差分方法进行压缩。即第一个数据不变,其后的数据取与前ー数据的差值并用四位二进制补码表示,两个差值拼成一个字节,前一个差值放在高四位,后ー个差值放在低四位。例如:原数据(X旧):23H,27H,2AH,29H,22H…压缩后(Y[n]):23H,43H,F9H•••编程按上述方法进行压缩,结果保存在RESULT开始的内存单元中。试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDB2*N+1DUP(?)RESULTDBN+1DUP(0)NAMEODB,INPUT1.DAT,ONAME1DB'OUTPUT1.DAT',0NDATADBNDUP(0)PDATADBNDUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAXQATAMOVDS,AXMOVES,AX;置附加段寄存器LEADX,SOURCE;数据区起始地址LEASI,NAMEO源始数据文件名MOVCX,2*N+1;字节数CALLLOAD;从TNPUT1.DAT•中读取数据ド***BEGIN****LEASI,SOURCELEADI,RESULTCLDMOVSB;Y[0]=X[0]XORBX,BX;FLAG=0MOVDX,N*2;COUNTERCOMPRESS:LODSB;X[n]-X[n-l]SUB;FLAG=NOTFLAGJLOW.HEXMOVCL,4 AL,CLMOVAH,ALJMPNEXTLOW_HEX:ORAL,AHSTOSBNEXT: JNECOMPRESS;****end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N+1;字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第六题:ー、请编制程序,其功能是:将内存中存放着20个数字。〜9之间的ASCH字符(包括数字。和9的ASCH字符)或SP字符(20H),请将数字。〜9之间的ASCII字符(包括数字。和9的ASCH字符)转换为相应的ハ位二进制数,并将SP字符转换为$字符(24H)。将按上述方法处理后得到的2。个字节存入内存中。例如:内存中有20H(SP),30H(V),31H(T),31H(T)20H(SP‘),32H(2),…,39H(9)(共2。个ASCII字符)结果为24H(T),00H,01H,0lH,01H,24H(め,。2H(2),…,09H('9')(共2。个字节)试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU20STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDBNDUP(O)NAMEODB•INPUT1.DAT,0NAME1DB'OUTPUTLDAT',0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAXQATAMOVDS,AXLEADX,SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N;字节数CALLLOAD;从TNPUT1.DAT中读取数据ド***begin****MOVDI,0CHAN: SUBAL,20HJZCHANGESUBAL, MOVRESULTpilALDECCXJZEXITJMPCHANCHANGE:MOVRESULT[DI],24HINCDIINCSIJMP EXIT:NOP;****end****LEADX.RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N;字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第七题:ー、请编制程序,其功能是:内存中共有30个字节型数据,找出其中的两个ASCH字符串并进行校验。欲寻找ASCII字符串由13个字符组成:#(23H),フ个ASCI!字符,*(2AH),2个ASCI!字符,回车符(0DH),换行符(0AH)#校验方法为:对字符#及字符・之间的7个ASCII字符进行异或操作,若异或操作结果的ASCCII字符表示(异或操作结果高4位的ASCII字符表示在前,低4位的ASCII字符表示在后)与原字符串中字符・之后的两个ASCII字符相同,则将原字符串原样保存;反之,则将原字符串中的所有字符(共13个)均用字符!(21H)代替。例如:内存中有33H,35H,23H(第一个字符串开始),46H,41H,30H,2EH,34H,3DH,3lH,2AH('*'),32H,31H,0DH,0AH,46H23H(#,第二个字符串开始),46H,41H,30H,2EH,34H,3DH,30H2AH('*'),32H,31H,0DH,0AH,55H结果为23H,46H,41H,30H,2EH,34H,3DH,31H,2AH("),32H,31H(校验正确,该字符串原样保持),ODH,OAH,21H0H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H(校验错,整个字符串用字符’!’代替)。试题程序:EXTRNLQAD:FAR,SAVE:FARNEQU26STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBN+4DUP(?)RESULTDBNDUP(O)HHDB2DUP(0)NAMEODB'INPUTLDAr,。NAME1DB,OUTPUTl.DAT',0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAXQATAMOVDS,AXLEADX,SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N+4;字节数CALLLOAD;从•INPUT1.DAT1中读取数据.****begin****MOVSI,0MOVDl,0MOVBX,2酒个ASCI!字符串REPEAT:MOVAH,0SEARCH:MOVAL,SOURCE[SI]INCSICMPAI」達 SEARCHMOVRESULT[DI],ALINCDISEARCH1:MOVAL,SOURCE[SI]INCSICMPAK JEASCIIMOVRESULT[DI],ALINCDIXORAH,ALJMP ASCII:MOVRESULT[DI],ALINCDIPUSHDIMOVDl,0MOVDH,2MOVDL,AH;异或结果暂存在DL中MOVCL,4;先将异或结果高4位转换成ASCI!字符SHRAH,CL;本行开始的4行语句将一个十六进制数转换为ASCII码CHANGE:CMPAH,10JLADD_0ADDAH,'A’」0'-10ADD_0:ADDAH,'O'MOVHHIDIJ.AHINCDIDECDHJZEXTMOVAH,DL;再将异或结果低4位转换成ASCII字符ANDAH,0FHJMPCHANGEEXT:POPDIMOVAL,SOURCE[SI]MOVRESULTg^ALINCSIINCDIMOVAH,SOURCE[SI]MOVRESULT[DI],AHINCSIINCDIMOVDL,HHMOVDH,HH+1CMPAX,DX ERRMOVAL,0DH;校险正确MOVRESULTg^ALINCDIMOVAL,0AHMOVRESULT[DI],ALINCDIJMPLPERR:SUBDI,11;校验错误MOVALゼMOVCX, COVER:MOVRESULT[Dl],ALINCDILOOPCOVERLP: JZEXITJMPREPEATEXIT:NOP.****end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N;字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第ハ题:ー、请编制程序,其功能是:内存中连续存放着10个十六位二进制数,每个数的序号依次定义为0,1,…,9。统计每个数中位为0的个数N0N1,…,N9(均用ー个字节表示),然后按序定义将N0至N9存入内存中,最后再用ー个字节这10个数中为0的位的总数n(n=N0+N1+…+N9)。例如:内存中有0000H,000FH,FFFFH…结果为10H,0CH,00H…最后为n试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?);顺序存放10个字节数RESULTDBN+1DUP(0);存放结果NAMEODB'INPUT1.DAT,ONAME1DB,OUTPUT1.DAT,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;数据区起始地址LEASI,NAMEO源始数据文件名MOVCX,N*2;字节数CALLLOAD;从7NPUT1.DAT中读取数据;****begin****MOVDI,OFFSETRESULTMOVCLNMOVBX,0MOVDH,0PRO:MOVDL,0MOVAX,SOURCE[BX]MOVCH, COUNT: JUMPINCDLJUMP:DECCHJNZ MOV[DI1,DLADDDH,DLINCDIADD DECCLJNZPROMOV ド***end****LEADX,RESULT;结果数据区首址LEASI.NAME1;结果文件名MOVCX,N;结果字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第九题:ー、请编制程序,其功能是:内存中有一个由16个十六位二进制数组成的数组(SOURCE)和一个字变量し〇试将L作为逻辑尺对数组SOURCE进行下列处理:如L的第i位为〇,则数组的第i个数不变;如L的第i位为1,则数组的第i个数按位取反。字L的位序从低到高依次为0至15,数组下标依次从0到15。例如:L=0009H,数组为139cH,89C6H,5437H,881914…变换为EC63H,89c6H,5437H,77E6H…试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU16STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTLDW?SOURCEDWNDUP(?)RESULTDWNDUP(0)NAMEODB'INPUT1.DAT,ONAME1DB,OUTPUT1.DAT,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,L;数据区起始地址LEASI,NAMEO源始数据文件名MOVCX,2*(N+1);字节数CALLLOAD;从TNPUT1.DAT中读取数据;****begin****LEASI,SOURCEMOVCX,NMOVDX, LO:MOVAX,[SI] L,DX STORENOTAXSTORE:MOV[DI],AXADDDI?ADDSI,2LOOPLO;****end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,2*N;结果字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第十题:ー、请编制程序,其功能是:计算10个有符号字节数据的绝对值之和(字型),并找出绝对值最大的数及其所在的偏移地址,最后将它们依次存入指定的内存中,结果以FFH结束。例如:内存中有10H,01H,27H,00H,FEH,80H,00H,03H,FFH,01H结果为BFH,00H,80H,05H,00H,FFH试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU10DSEGSEGMENTSOURCEDBNDUP(?)RESULTDB6DUP(0)MAXDB?NAMEODB'INPUT】.DAT,0NAME1DB'OUTPUTLDAT',0DSEGENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,SS:SSEG,DS:DSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVES,AX潰附加段寄存器LEADX,SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N;字节数CALLLOAD;从,INPUT1.DAT中读取数据ド***begin****LEASI,SOURCELEADI,RESULTMOVDX,SIMOVCX.N-1MOVAL,[SI]ADDAL,0JNSP1Pl:MOVMAXN,ADD[DI]^LGOON:INCSIMOVAL,[SI]ADDAL,0JNSP2NEGALP2:ADD[DI],ALCMPMAX,ALJAE MOVMAX,ALMOVDX,SINEXT:LOOPGOONADDDI,2MOVAL,MAXMOV[DI],ALINCDIMOV[DI],DXADDDI,2MOVBYTEPTR[DI],ド***end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,6;字节数CALLSAVE;保存结果到文件RETSTARTENDPCSEGENDSENDSTART第十一题:ー、请编制程序,其功能是:以SOURCE开始的内存区域存放着多个字节的数据,其中有压缩BCD码和其他数据。现按下列编码规则进行编码:在第每个压缩BCD码前面加两个字节前缀代码BEH和CCH,并在其后加两个字后缀代码DDH和EDHJ如果不是压缩BCD码,则该数据前后均加两个代码ODH和0EHo编码后的数据存放到RESULT指示的内存区域。例如:内存中有!2H,D9H,86H,54H••结果为BEH,CCH,12H,DDH,EDH,0EH,D9H,0DH,0EH,BEH,CCH,86H,DDH,EDH,BEH,CCH,86H,DDH,EDH…试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDB5*NDUP(0)NAMEODBTNPUT1.DAT*,。NAME1DB'OUTPUTl.DAT.ODATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX覆附加段寄存器LEADX,SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N;字节数CAIJ,LOAD;从TNPUT1.DAT中读取数据.****BEG[N****LEASI,SOURCEMOVDI,OFFSETPDATA;PDATA为正数数组存放缓冲区首址MOVCX,NCLP1:MOVAL,[SI]MOVBLALMOVAH^XLANDAL,0F0HMOVCL,4POPexCMP JACLP2CMPAH,9JACLP2MOV INCDIMOVBYTEPTR[Dfl,OCCHINCDIMOVBYTEPTR[DI],BLINCDIMOVBYTEPTR|Dq,ODDHINCDIMOVBYTEPTR[DI],OEDHJMPCLP3CLP2:MOVBYTEPTR[DI],0DHINCDIMOVBYTEPTR[DI],0EHINCDIMOVBYTEPTR[DI],BLINCDIMOVBYTEPTR[DQ,0DHINCDIMOVBYTEPTR[DI],0EHCLP3:INCSIINCDIド***end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N+2;字节数CAI丄SAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第十二题:ー、请编制程序,其功能是:内存中连续存放的20个八位无符号数是ー个自动抄表仪抄录的20个用户某月的用水量(立方米),为了控制用水量,水费计算公式如下(X表示用水量;Y表示水费,单位为分):1、Y=X*70X<=52、Y=X*1005<X<=53、Y=X*150X>20例如:用水量(X):04H,10H,18H--水费(Y):0118H,0640H,0E10H--试计算出这20个用户应缴纳的水费,结果用字(WORD)表示。试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU20STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDWNDUP(O)NAMEODBTNPUT1.DAT,0NAME1DB,OUTPUT1.DAT',0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAXQATAMOVDS,AXLEADX,SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N;字节数CALLLOAD;从TNPUT1.DAT1中读取数据.****begin****LEASI,SOURCELEADI,RESULTCLDMOVCX,NMOVBL,70MOVBH,100MOVDL,150NEXT: CMPAL,5JGT5JMPSTOREGT5:CMPAL,20JGT20JMPSTOREGT20: STORE:MOV[DI],AXLOOPNEXT.****f:1^^|~^****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N*2;字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第十三题:ー、请编制程序,其功能是:内存中连续存放的20个八位无符号数是ー个自动抄表仪抄录的20个用户某月的用水量(立方米),为了控制用水量,水费计算公式如下(X表示用水量;Y表示水费,单位为分):a)Y=X*70X<=5b)Y=10*70+(X-10)*120X>10例如:用水量(X):04H,0FH,18H--水费(Y):0118H,0514H,094cH…试计算出这20个用户应缴纳的水费,结果用字(WORD)表示。试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU20RATE1EQU70RATE2EQU120DELTAEQU10STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDWNDUP(0)NAME0DBTNPUT1.DAT,ONAME1DB'OUTPUT1.DAT,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXLEADX,SOURCE;数据区起始地址LEASI,NAME0源始数据文件名MOVCX,N;字节数CALLLOAD;从"NPUT1.DAT中读取数据;****begin****LEASI,SOURCELEADI,RESULTCLDMOVCX,NMOVBURATE1MOVBH,RATE2NEXT: CMPAUDELTAJGREATMULBLJMPSTOREGREAT: MULBHSTORE: INCSILOOPNEXT.****end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N*2;字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第十四题:ー、请编制程序,其功能是:对ー个由可打印ASCII字符(ASCII码20H〜フFH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,v原字符》三个字节来代替(假定n不超过255)。例如:原串:41H,43H,43H,43H,43H,43H,43H,61H,00H("ACCCCCCa”)压缩后:41H,1BH,06H,43H,61H,00H设内存中从SOURCE开始有一字符串,其以00H结束,长度不超过100。试编程对其进行压缩,结果存入RESUI/T开始的内存单元。试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU100ESC_CODEEQU27STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDBNDUP(O)NAMEODB'INPUT1.DAT,ONAME1DB'OUTPUTl.DAT*,。DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX;置附加段寄存器LEADX,SOURCE愚据区起始地址LEASI,NAMEO源始数据文件名MOVCX,N;字节数CALLLOAD;从TNPUT1.DAT・中读取数据.****begin****LEASI,SOURCELEADI,RESULTCLDINCDIID: CMPAL,0JEQUITMOVCX,OFFFFH;SETTHECOUNTERTOOFFFFH存符串重复搜索,CX=0FFFFH-nNEGCX;10000H-CX—CX ;获得重复次数nCMPCX,1JCOMPRESSMOV[SI]人LINCSIJMP COMPRESS:MOV[SI],BYTEPTRESC.CODEMOV[SI+1],CLMOV[SI+2],ALJMPLOQUIT:MOV[SI],ALSTORETHE•OOH'.****|~^****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N;字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第十五题:ー、请编制程序,其功能是:对ー个由可打印ASCII字符(ASCH码20H〜フFH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,v原字符,三个字节来代替(假定n不超过255)。例如:设内存中从SOURCE开始有一用上述方法压缩的字符串,其以00H结束,长度不超过100。试编程对其进行解压缩,结果存入RESUI’T开始的内存单元。原串:41H,lBH,06H,43H,61H,00H解压后:41H,43H,43H,43H,43H,43H,43H,61H,00H("ACCCCCCa”)试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU100ESC_CODEEQU27STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDBNDUP(0)NAME0DB'INPUT1.DAT,0NAME1DB'OUTPUTLDAT.ODATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX;置附加段寄存器LEADX.SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N;字节数CAI.LI.OAD;从,INPUTLDAT中读取数据ド***begin****LEASI,SOURCELEADI,RESULTCLDLO:LODSBCMPAL,0JEQUITCMPAUESC_CODEI EXPANDJMPLOEXPAND:;解压XORCX,CXJMPLOQUIT:STOSB;STORETHE'OOH'ド***end****LEADX,RESULT;结果数据区首址LEASI.NAME1;结果文件名MOVCX,N;字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第十六题:一、请编制程序,其功能是:对经常上下波动的数据可采用只记录峰值的数据压缩方法。即每次将采样到的当前值和前一次值比较,如数据变化方向改变(原变大现变小或原变小现变大),说明已过峰值,这时就将前一值(峰值)记录下来。例如(下例数据均为无符号数):原数据:23H,45H,89H,67H,5CH,36H,3cH…压缩后:23H,89H,36H…内存中从SOURCE连续存放着48个八位无符号数,假定无相邻两数相等的情况,编程按上述方法进行压缩,结果保存在RESULT开始的内存单元中。试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU40STACSEGMENTSTACKDB128DUP(?)STACENDSDATASEGMENTSOURCEDBNDUP(?)RESULTDBNDUP(O)NAMEODB'INPUTl.DAT.ONAME1DB'OUTPUT】.DAT,0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX;置附加段寄存器LEADX,SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N;字节数CALLLOAD;从INPUT1.DAT中读取数据.****BEG[N****LEASI,SOURCELEADI,RESULTCLDMOVSBXORAX,AXXORBX,BXLODSBMOVBU[SI-2]SUBAX,BXMOVDXAXMOVCX,N-2FILTER:XORAX,AXXORBX,BXLODSB;X[n]MOVBUSI-2I凶n-1]SUBAX,BX;X[n]-X[n-l]湘邻两差值(AX,DX)符号位是否相同JSKIP;相同,数据方向未变 ;不同,数据变化,保存峰值STOSBSKIP: LOOPFILTER.****end****LEADX,RESULT;结果数据区首址LEASI,NAME1;结果文件名MOVCX,N;字节数CALLSAVE;保存结果到文件RETSTARTENDPCODEENDSENDSTART第十七题:ー、请编制程序,其功能是:从10个有符号字节数据中取出负数并计算其绝对值之和(字型),然后存放在指定的内存区中,多余的空间填〇。例如:内存中有:80H,01H,02H,00H,FFH,7CH,FEH,7BH,FDH,81H结果为:80H,FFH,FEH,FDH,81H,05H,01H,OOH,OOH,OOH试题程序:EXTRNLOAD:FAR,SAVE:FARNEQU10DSEGSEGMENTSOURCEDBNDUP(?)RESULTDBNDUP(O)NAMEODB'INPUT1.DAT0NAME1DB'OUTPUT1.DAT,0DSEGENDSSSEGSEGMENTSTACKDB256DUP(?)SSEGENDSCSEGSEGMENTASSUMECS:CSEG,SS:SSEG,DS:DSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVES,AX潰附加段寄存器LEADX,SOURCE;数据区起始地址LEASI,NAMEO;原始数据文件名MOVCX,N;字节数CALLLOAD;从•INPUT1.DAT1中读取数据.****begin****LEASI,SOURCELEADI,RESULTMOVDX,0MOVCX,NCLD/r/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模拟应聘面试题及答案
- 2025年音乐理论与实践考试试题及答案
- 西方国家的社会公正理念探讨试题及答案
- 2025年统计学基础知识考试题及答案
- 吓人测试题及答案
- 2025年翻译学专业考试题及答案
- 优衣库招聘面试题及答案
- 规划中心面试题及答案
- 宝钢财务面试题及答案
- 汽车电子技术模拟试题
- 无创机械通气护理要点
- TCCAATB0045-2023城市航站楼服务规范
- 七下道法【选择题】专练50题
- 2024年北京第二次高中学业水平合格信息技术试卷试(含答案详解)
- 职业压力管理学习通超星期末考试答案章节答案2024年
- 人力资源管理:基于创新创业视角学习通超星期末考试答案章节答案2024年
- 安全环保职业健康法律法规清单2024年
- 基于杜邦分析法的蔚来汽车经营财务分析及建议
- 职业教育专业教学资源库建设工作方案和技术要求
- 江苏省徐州市2023-2024学年七年级下学期期末英语试卷(含答案解析)
- 2024年西藏初中学业水平考试生物试题(原卷版)
评论
0/150
提交评论