计算机等级考试三级PC技术上机20套 汇编

上传人:仙*** 文档编号:28495213 上传时间:2021-08-29 格式:DOC 页数:75 大小:129.02KB
收藏 版权申诉 举报 下载
计算机等级考试三级PC技术上机20套 汇编_第1页
第1页 / 共75页
计算机等级考试三级PC技术上机20套 汇编_第2页
第2页 / 共75页
计算机等级考试三级PC技术上机20套 汇编_第3页
第3页 / 共75页
资源描述:

《计算机等级考试三级PC技术上机20套 汇编》由会员分享,可在线阅读,更多相关《计算机等级考试三级PC技术上机20套 汇编(75页珍藏版)》请在装配图网上搜索。

1、2013年计算机等级考试三级PC技术上机(1)请编制程序,其功能是:将内存中由SOURCE指示的40个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域,存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素。例如:内存中有 1EH,91H,74H,91H,42H,30H,81H,F3H,18H,25H结果为 06H,1EH,74H,42H,30H,18H,25H,04H,91H,91H,81H,F3H部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求

2、从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 40STAC SEGMENT STACKDB 128 DUP(?)STAC ENDS

3、DATA SEGMENTSOURCE DB N DUP(0)RESULT DB N+2 DUP(0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0NDATA DB N DUP(0)PDATA DB N DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX ;置附加段寄存器LEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV

4、CX,N ;字节数CALL LOAD ;从INPUT1.DAT中读取数据;*BEGIN*LEA SI,SOURCEMOV DI,OFFSET PDATA ;PDATA为正数数组存放缓冲区首址MOV BX,OFFSET NDATA ;NDATA为负数数组存放缓冲区首址XOR DX,DXMOV CX,NCLDMAIN1: LODSBTEST AL,_JZ MAIN2INC DH ;-MOV BX,ALINC BX_MAIN2: INC DLMOV DI,AL ;+INC DIMAIN3: _ MAIN1LEA SI,PDATALEA DI,RESULTMOV DI,DLINC DIXOR CX,C

5、XMOV CL,DLMAIN4: MOV AL,_MOV DI,ALINC DIINC SILOOP _MOV DI,DHINC DIXOR CX,CXMOV CL,DHMOV BX,OFFSET NDATAMAIN5: MOV AL,BXMOV DI,ALINC DI_LOOP MAIN5;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N+2 ;字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START2013年计算机等级考试三级PC技术上机(2)请编制程序,其功能是:内存中连续存放着1

6、0个无符号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部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文

7、件OUTPUT1.DAT中。填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 10STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N D

8、UP(?) ;顺序存放10个字节数RESULT DB N DUP(0) ;存放结果NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从INPUT1.DAT中读取数据;*BEGIN*LEA SI,SOURCELEA

9、DI,RESULTMOV CX,10AGN0: MOV AL,SI_MOV CX,8MOV BX,0AGN1: MOV AH,0SHL BL,1_ AL,1RCL AH,1CMP AH,_JMP NEXTSET_ONE:OR BL,01HNEXT: MOV _,BL_LOOP AGN1_MOV DI,BLINC SIINC DILOOP AGN0;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START2013年计算机等级考试三级P

10、C技术上机(3)请编制程序,其功能是:内存中连续存放着20个十六位二进制无符号数序列,请将它们排成升序(从小到大)。例如:内存中有 7001H,7004H,7002H(假设后17个字均大与7004H)结果为 7001H,7002H,7004H(后跟17个字,按从小到大的顺序排列)部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),

11、或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DW N DUP(?)RESULT DW N DUP(0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DATA ENDSCOD

12、E SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N*2 ;字数CALL LOAD ;从INPUT1.DAT中读取数据;*BEGIN*LEA SI,SOURCELEA DI,RESULTMOV CX,NNEXT0: MOV AX,SIMOV DI,AXADD SI,_LOOP _CLDMOV BX,N-1MAL1: LEA SI,RESULTMOV CX,

13、_NEXT: LOD_CMP SI,AXJAE CONTXCHG SI,_MOV SI-2,AXCONT: LOOP _ MAL1;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N*2 ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START2013年计算机等级考试三级PC技术上机(4)请编制程序,其功能是:内存中连续存放着24个无符号二进制字序列,字的最高位为000,此序列对应某一信号在一段时间内的连续变化,现对第21个二进制字前的20个二进制字进行移动平均处理,其方法为:将要处

14、理的字Xi用以它为开始的连续五个字的平均数(Xi+Xi+1Xi+2Xi+3Xi+4)/5代替(余数舍去),得到新的20个无符号二进制字序列,结果存入内存。例如:内存中有 0100H,0200H,0300H,0400H,0500H,0600H结果为 0300H,0400H部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BE

15、GIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 24STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DW N DUP(?) ;顺序存放24个字RESULT DW 20 DUP(0) ;存放结果NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0

16、DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N*2 ;字数CALL LOAD ;从INPUT1.DAT中读取数据;*BEGIN*MOV DI,0MOV SI,0MOV CX,20MOV BX,_AGN0: MOV AX,SOURCESIPUSH SIPUSH CXMOV _ , _AGN1: INC SIINC SIADD A

17、X,SOURCESILOOP AGN1_DIV BXMOV RESULTDI,AXINC DI_POP CXPOP SIINC SI_LOOP AGN0;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,40 ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START2013年计算机等级考试三级PC技术上机(5)请编制程序,其功能是:内存中从SOURCE开始连续存放着21个八位有符号数(补码),其相邻两数之间差值不超过-8至7。对这种变化缓慢的数据可采用差分方法进行压缩。即第一个数据不变

18、,其后的数据取与前一数据的差值并用四位二进制补码表示,两个差值拼成一个字节,前一个差值放在高四位,后一个差值放在低四位。例如:原数据(Xn):23H,27H,2AH,29H,22H压缩后(Yn):23H, 43H, F9H编程按上述方法进行压缩,结果保存在RESULT开始的内存单元中。部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指

19、令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 10STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB 2*N+1 DUP(?)RESULT DB N+1 DUP(0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0N

20、DATA DB N DUP(0)PDATA DB N DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX ;置附加段寄存器LEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,2*N+1 ;字节数CALL LOAD ;从INPUT1.DAT中读取数据;*BEGIN*LEA SI,SOURCELEA DI,RESULTCLDMOVSB ;Y0=X0XOR B

21、X,BX ;FLAG=0MOV DX,N*2 ;COUNTERCOMPRESS:LODSB ;Xn-Xn-1SUB _ ;FLAG=NOT FLAG_J_ LOW_HEXMOV CL,4_ AL,CLMOV AH,ALJMP NEXTLOW_HEX:_OR AL,AHSTOSBNEXT: _JNE COMPRESS;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N+1 ;字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START2013年计算机等级考试三级PC技术上机(6)请编制程序,其功

22、能是:将内存中存放着20个数字09之间的ASCII字符(包括数字0和9的ASCII字符)或SP字符(20H),请将数字09之间的ASCII字符(包括数字0和9的ASCII字符)转换为相应的八位二进制数,并将SP字符转换为 $ 字符(24H)。将按上述方法处理后得到的20个字节存入内存中。例如:内存中有 20H(SP),30H(0),31H(1),31H(1),20H(SP),32H(2),39H(9)(共20个ASCII字符)结果为 24H($),00H,01H,01H,01H,24H($),02H(2),09H(9)(共20个字节)部分程序已给出, 其中原始数据由过程LOAD从文件INPUT

23、1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMEN

24、T STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(?)RESULT DB N DUP(0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从INPU

25、T1.DAT中读取数据;*BEGIN*_MOV DI,0_CHAN: _SUB AL,20HJZ CHANGESUB AL,_MOV RESULTDI,AL_DEC CXJZ EXITJMP CHANCHANGE: MOV RESULTDI,24HINC DIINC SIJMP _EXIT : NOP;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N ;字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START2013年计算机等级考试三级PC技术上机(7)请编制程序,其功能是:内存中共有3

26、0个字节型数据,找出其中的两个ASCII字符串并进行校验。欲寻找ASCII字符串由13个字符组成:#(23H),7个ASCII字符,*(2AH),2个ASCII字符,回车符(0DH),换行符(0AH)。校验方法为:对字符#及字符*之间的7个ASCII字符进行异或操作,若异或操作结果的ASCCII字符表示(异或操作结果高4位的ASCII字符表示在前,低4位的ASCII字符表示在后)与原字符串中字符*之后的两个ASCII字符相同,则将原字符串原样保存;反之,则将原字符串中的所有字符(共13个)均用字符!(21H)代替。例如:内存中有 33H,35H,23H(#,第一个字符串开始),46H,41H,

27、30H,2EH,34H,3DH,31H,2AH(*),32H,31H,0DH,0AH,46H,23H(#,第二个字符串开始),46H,41H,30H,2EH,34H,3DH,30H,2AH(*),32H,31H,0DH,0AH,55H结果为 23H,46H,41H,30H,2EH,34H,3DH,31H,2AH(*),32H,31H(校验正确,该字符串原样保持),0DH,0AH,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H(校验错,整个字符串用字符!代替)。部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SO

28、URCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 26STAC SEGMENT STACKDB

29、128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N+4 DUP(?)RESULT DB N DUP(0)HH DB 2 DUP(0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N+4 ;字节数CALL LOA

30、D ;从INPUT1.DAT中读取数据;*BEGIN*MOV SI,0MOV DI,0MOV BX,2 ;两个ASCII字符串REPEAT: MOV AH,0SEARCH: MOV AL,SOURCESIINC SICMP AL,#_ SEARCHMOV RESULTDI,ALINC DISEARCH1:MOV AL,SOURCESIINC SICMP AL,_JE ASCIIMOV RESULTDI,ALINC DIXOR AH,ALJMP _ASCII: MOV RESULTDI,ALINC DIPUSH DIMOV DI,0MOV DH,2MOV DL,AH ;异或结果暂存在DL中MOV

31、 CL,4 ;先将异或结果高4位转换成ASCII字符SHR AH,CL ;本行开始的4行语句将一个十六进制数转换为ASCII码CHANGE: CMP AH,10JL ADD_0ADD AH,A-0-10ADD_0: ADD AH,0MOV HHDI,AHINC DIDEC DHJZ EXTMOV AH,DL ;再将异或结果低4位转换成ASCII字符AND AH,0FHJMP CHANGEEXT: POP DIMOV AL,SOURCESIMOV RESULTDI,ALINC SIINC DIMOV AH,SOURCESIMOV RESULTDI,AHINC SIINC DIMOV DL,HHM

32、OV DH,HH+1CMP AX,DX_ ERRMOV AL,0DH ;校验正确MOV RESULTDI,ALINC DIMOV AL,0AHMOV RESULTDI,ALINC DIJMP LPERR: SUB DI,11 ;校验错误MOV AL,!MOV CX,_COVER: MOV RESULTDI,ALINC DILOOP COVERLP: _JZ EXITJMP REPEATEXIT: NOP;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N ;字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE E

33、NDSEND START2013年计算机等级考试三级PC技术上机(8)请编制程序,其功能是:内存中连续存放着10个十六位二进制数,每个数的序号依次定义为0,1,9。统计每个数中位为0的个数N0,N1,N9(均用一个字节表示),然后按序定义将N0至N9存入内存中,最后再用一个字节这10个数中为0的位的总数n(n=N0+N1+N9)。例如:内存中有 0000H,000FH,FFFFH结果为 10H,0CH,00H最后为n部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1

34、.DAT中。填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 10STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(?) ;顺

35、序存放10个字节数RESULT DB N+1 DUP(0) ;存放结果NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N*2 ;字节数CALL LOAD ;从INPUT1.DAT中读取数据;*BEGIN*MOV DI,OFFSET RESULTM

36、OV CL,NMOV BX,0MOV DH,0PRO: MOV DL,0MOV AX,SOURCEBXMOV CH,_COUNT: _ JUMPINC DLJUMP: DEC CHJNZ _MOV DI,DLADD DH,DLINC DIADD _DEC CLJNZ PROMOV _;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START2013年计算机等级考试三级PC技术上机(9)请编制程序,其功能是:内存中有一个由16个十六位

37、二进制数组成的数组(SOURCE)和一个字变量L。试将L作为逻辑尺对数组SOURCE进行下列处理:如L的第i位为0,则数组的第i个数不变;如L的第i位为1,则数组的第i个数按位取反。字L的位序从低到高依次为0至15,数组下标依次从0到15。例如:L=0009H,数组为 139CH,89C6H,5437H,8819H变换为 EC63H,89C6H,5437H,77E6H部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入(L在前,SOURCE在后)。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的源程

38、序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 16STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTL DW ?SOURCE DW N DUP(?)RESULT DW N DUP(0)NAME

39、0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXLEA DX,L ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,2*(N+1) ;字节数CALL LOAD ;从INPUT1.DAT中读取数据;*BEGIN*LEA SI,SOURCE_MOV CX,NMOV DX,_L0: MOV AX,SI_ L,DX_ STORENOT A

40、XSTORE: MOV DI,AXADD DI,2ADD SI,2_LOOP L0;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,2*N ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START2013年计算机等级考试三级PC技术上机(10)请编制程序,其功能是:计算10个有符号字节数据的绝对值之和(字型),并找出绝对值最大的数及其所在的偏移地址,最后将它们依次存入指定的内存中,结果以FFH结束。例如:内存中有 10H,01H,27H,00H,FEH,80H,00H,03H,FFH

41、,01H结果为 BFH,00H,80H,05H,00H,FFH部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中

42、存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 10DSEG SEGMENTSOURCE DB N DUP(?)RESULT DB 6 DUP(0)MAX DB ?NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0DSEG ENDSSSEG SEGMENT STACKDB 256 DUP(?)SSEG ENDSCSEG SEGMENTASSUME CS:CSEG,SS:SSEG,DS:DSEGSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DSEGMOV DS,AXMOV

43、 ES,AX ;置附加段寄存器LEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从INPUT1.DAT中读取数据;*BEGIN*LEA SI,SOURCELEA DI,RESULTMOV DX,SIMOV CX.N-1MOV AL,SIADD AL,0JNS P1_P1: MOV MAX,ALADD DI,AL_GOON: INC SIMOV AL,SIADD AL,0JNS P2NEG ALP2: ADD DI,AL_CMP MAX,ALJAE _MOV MAX,ALMOV DX,SINEXT: LOOP G

44、OONADD DI,2MOV AL,MAXMOV DI,ALINC DIMOV DI,DXADD DI,2MOV BYTE PTR DI,_;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,6 ;字节数CALL SAVE ;保存结果到文件RETSTART ENDPCSEG ENDSEND START2013年计算机等级考试三级PC技术上机(11)请编制程序,其功能是:以SOURCE开始的内存区域存放着多个字节的数据,其中有压缩BCD码和其他数据。现按下列编码规则进行编码:在第每个压缩BCD码前面加两个字节前缀代码BEH和CCH,并在其后

45、加两个字后缀代码DDH和EDH;如果不是压缩BCD码,则该数据前后均加两个代码0DH和0EH。编码后的数据存放到RESULT指示的内存区域。例如:内存中有 12H,D9H,86H,54H结果为 BEH,CCH,12H,DDH,EDH,0EH,D9H,0DH,0EH,BEH,CCH,86H,DDH,EDH,BEH,CCH,86H,DDH,EDH部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横

46、线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 10STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(?)RESULT DB 5*N DUP(0)NAME0 DB INPUT1.DAT

47、,0NAME1 DB OUTPUT1.DAT,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX ;置附加段寄存器LEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从INPUT1.DAT中读取数据;*BEGIN*LEA SI,SOURCEMOV DI,OFFSET PDATA ;PDATA为正数数组存放缓冲区首址MOV CX,N

48、CLP1: MOV AL,SIMOV BL,ALMOV AH,AL_AND AL,0F0H_MOV CL,4_POP CXCMP _JA CLP2CMP AH,9JA CLP2MOV _INC DIMOV BYTE PTRDI,0CCHINC DIMOV BYTE PTRDI,BLINC DIMOV BYTE PTRDI,0DDHINC DIMOV BYTE PTRDI,0EDHJMP CLP3CLP2: MOV BYTE PTRDI,0DHINC DIMOV BYTE PTRDI,0EHINC DIMOV BYTE PTRDI,BLINC DIMOV BYTE PTRDI,0DHINC DI

49、MOV BYTE PTRDI,0EHCLP3: INC SIINC DI_;*END*LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N+2 ;字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START2013年计算机等级考试三级PC技术上机(12)请编制程序,其功能是:内存中连续存放的20个八位无符号数是一个自动抄表仪抄录的20个用户某月的用水量(立方米),为了控制用水量,水费计算公式如下(X表示用水量;Y表示水费,单位为分):1、 Y=X*70 X=52、 Y=X*100 5x=5/x=53、 Y

50、=X*150 X20例如:用水量(X): 04H, 10H, 18H水费 (Y):0118H,0640H,0E10H试计算出这20个用户应缴纳的水费,结果用字(WORD)表示。部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 20STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE D

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!