网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

请编制程序,其功能是:以SOURCE开始的内存区域存放着若干字节的数据,以''作为数据的结束标志。将其中的空格滤除,对每个非空格数据的最高位清0后依次存放到RESULT指示的区域,其后存放一个空格符(20),然后存放原来的空格个数,最后仍以''结束。

例如:

内存中有45H,20H,87H,20H,A5H,32H,20H,20H,20H,23H

结果为 45H,07H,25H,32H,20H,05H,23H

部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。

请填空BEGIN和END之间已经给出的一段源程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

试题程序:


参考答案

更多 “ 请编制程序,其功能是:以SOURCE开始的内存区域存放着若干字节的数据,以''作为数据的结束标志。将其中的空格滤除,对每个非空格数据的最高位清0后依次存放到RESULT指示的区域,其后存放一个空格符(20),然后存放原来的空格个数,最后仍以''结束。例如:内存中有45H,20H,87H,20H,A5H,32H,20H,20H,20H,23H结果为 45H,07H,25H,32H,20H,05H,23H部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已经给出的一段源程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。试题程序: ” 相关考题
考题 请编制程序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执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:EXTRN LOAD:FAR, SAVE:FARN EQU 10STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(0)RESULT DB 5*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,AXMOV ES,AX ; 置附加段寄存器LEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N ; 字节数CALL LOAD ; 从INPUT1.DAT中读取数据;**** BEGIN ****LEA SI, SOURCEMOV DI,OFFSET RESULTMOV CX,NCLP1: MOV AL, [SI]MOV BL,ALMOV AH,AL(1)AND AL,0FOH(2)MOV CL,4(3)POP CXCMP (4)JA CLP2CMP AH,9JA CLP2MOV (5)INC DI&nbs

考题 请编制程序,其功能是:内存中连续存放着10个十六位二进制数。分别对每个数的高位字节和低位字节进行逻辑与运算及逻辑或运算。运算结果以字的形式按序连续存放(低位字节存入逻辑与运算的结果,高位字节存入逻辑或运算的结果)。例如:内存中有:AA55H,55AAH,FFAAH结果为: PP00H,FF00H,FFAAH部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放, 由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已经给出的源程序使其完整,空白处已经用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。[试题程序]EXTRN LOAD:FAR,SAVE:FARN EQU 3STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA SEGMENTSOURCE DW N DUP(?)RESULT DW 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,NANE0 ;原始数据文件名MOV CX,N*2 ;字节数CALL LOAD ;从'INPUT1.DAT'中读取数据; ********* BEGIN **********MOV DI,OFFSET RESULTMOV CX,NMOV BX,00PRO: MOV AX, (1)MOV DX,AXAND (2) ,DH(3) AH,ALMOV (4) ,DLADD BX,2(5)ADD DI,2(6)JNZ PRO; ******** END ********LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名NOV CX,N*2 ;结果字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START

考题 请编制程序,其功能是:内存中连续存放着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从文件INPUT.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。请填空BEGIN和END之间已给出的源程序使其完整,空白己用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。【试题程序】EXTRN LOAD:FAR,SAVE:FARN EQU 10STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA SEGMENTSOURCE DW N DUP(?)RESULT DB N+1 DUP(0)NAME0 DB 'INPUT.DAT',0NAME1 DB 'OUTPUT.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 ; 从'INPUT.DAT'中读取数据; ******** BEGIN ********MOV DI,OFFSET RESULTMOV CL,NMOV BX,0MOV DR,0PRO: MOV DL,0MOV AX, SOURCE[BX]MOV CH, (1)COUNT: (2)(3) JUMPINC DLJUMP: DEC CHJNZ (4)MOV [DI], DLADD DH,DLINC DIADD (5)DEC CLJNZ PROMOV (6); ******** END ********LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N+1 ; 结果字节数CALL SAVE ; 保存结果到文件RETSTART ENDPCODE ENDSEND START

考题 请编制程序PROG1.ASM,其功能是:对内存中连续存放着20个补码表示的无符号整数进行从大到小的排序,结果存放在RESULT开始的内存单元中。部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文刊:OUTPUT1.DAT中。请在BEGIN和END之间补充一段源程序,完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。试题程序:EXTRN LOAD:FAR, SAVE:FARN EQU 20DSEG SEGMENTSOURCE DW N DUP(?) ; 存放原始数据RESULT DW N DUP(0) ; 存放运算结果NAME0 DB 'INPUT1.DAT',0NAME1 DB 'OUTPUT1.DAT',0DSEG ENDSSSEG SEGMENT STACKDB 128 DUP(?)SSEG ENDSCSEG SEGMENTASSUME CS:CSEG, DS:DSEG, SS:SSEGSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DSEGMOV DS,AXMOV ES,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAMEO ; 原始数据文件名MOV CX.N ; 字节数CALL LOAD ; 从'INPUT1.DAT中读取数据';****BEGIN****………………;****END****LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N ; 结果字节数CALL SAVE ; 保存结果到文件RETSTART ENDPCSEG ENDSEND START

考题 请编制程序,其功能是:以SOURCE开始的内存区域存放着N个字节的压缩BCD码,将每个压缩BCD码转换成两个 ASCII值,并在每个ASCII值的最高位增加偶校验位,结果存放在RESULT指示的内存区域。例如:原压缩BCD码:26H,75H,91H,33H…结果为: B2H,36H,B7H…部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已经给出的一段原程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。[试题程序]EXTRN LOAD:FAR,SAVE:FARN EQU 10STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(0)RESULT DB 2*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,AXMOV ES,AX ;置附力,段寄存器LEA DX,SOURCE ;数据区起始地址LEA SI,NANE0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从'INPUT1.DAT' 中读取数据; *************BEGIN *************LEA SI,SOURCEMOV DI,OFFSET RESULTMOV CX,NSERCH1: MOV (1)MOV AH,ALAND AH,0FHAND AL,0FOHPUSH CXMOV CL,4(2)(3)ADD AL,30H(4)OR AL,80HSERCH2: MOV [DI],ALINC DI(5)JP SERCH3OR AH,80HSERCH3: MOV [DI],AHINC DIINC SI(6) SERCH1; ******** END ***********LEA DX,RESULT ; 结果数据区首址LEA

考题 请编制程序,其功能是:将一数据采集系统中采集的80个字节无符号数(已存于SOURCE开始的内存区域)按算术平均数字滤波方法进行数字滤波,每8个数求一个平均值(含去余数)。将10个平均值依次写入RESULT指示的内存区域。例如:原采集数据 1EH,31H,31H,33H,58H,75H,38H,34H,49H,A2H,98H, DFH,99H,64H,64H,B7H,…结果为 3DH,CCH,…部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程宋完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:

考题 请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域中存放着N个字节的有符号数。现找出最大的数,结果存放到RESULT指示的单元,其后存放原N个数逻辑取反后的值。例如:数据为:09H,7EH,89H,F3H,17H,……,67H(N个数据)结果为:7EH(最大数),F6H,81H,76H,0CH,E8H,……,98H(原来N个数的逻辑反)部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件 OUTPUT1.DAT中。填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:EXTRN LOAD:FAR, SAVE:FARN EQU 19STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(0)RESULT DB N+1 DUP(0)NAME0 DB 'INPUT1. DAT',0NAME1 DB 'OUTPUT1. DAT',0DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA,ES:DATA, SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N ; 字节数CALL LOAD ; 从INPUT1.DAT中读取数据;**** BEGIN ****(1) SI,SOURCEMOV BX,OFFSET SOURCELEA DI,RESULTMAXD1: MOV CX,NMOV DX,CXMOV AL, (2)MAXD2: INC BX(3) AL,[BX](4)MOV AL, [BX]MAXD3: DEC DXJNZ (5)MOV [DI], ALINC DICLDMREP: LODSBNOT AL(6)LOOP MREP; **** END ****LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名起始地址MOV &nbs

考题 请编制程序,其功能是:将内存中由SOURCE指示的40个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域。存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素。例如:部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请填空BEGIN和END之间已经给出的一段原程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。[试题程序]EXTRN LOAD:FAR,SAVE:FARN EQU 40STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA 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,NANE0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从'INPUT1.DAT'中读取数据**********BEGIN**********LEA SI,RESULT(1) DI,OFFSET PDATA ;PDATA为正数数组存放缓冲区首址NOV BX,OFFSET NDATA ;NDATA为负数数组存放缓冲区首址XOR DX,DXMOV CX,NCLDMAIN1: LODSBTEST AL, (2)Z MAIN2NC DHOV [BX],ALNC BX(3)MAIN2: INC DLOV [DI],ALNC DINAIN3: (4) NAIN1EA SI,PDATAA DI,RESULTOV [DI],DLNC&nb

考题 请编制程序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执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:EXTRN LOAD:FAR, SAVE:FARN EQU 10STAC SEGMENT STACKDB 128 DUP (?)STAC ENDSDATA SEGMENTSOURCE DB 6*N DUP(0)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,AXMOV ES,AX ; 置附加段寄存器LEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,6*N ; 字节数CALL LOAD ; 从INPUT1.DAT中读取数据; **** BEGIN ****LEA SI,SOURCEMOV DI,OFFSET RESULTMOV CX, (1)LPST: MOV DL, 6MCLP1: MOV AL, (2)MOV BX,SICMP AL,0AAHJNZ NEXTDINC SIMOV AL,[SI]CMP AL,0CCH(3)INC SIMOV AL,[SI]MOV DH,ALINC SIMOV AL,[SI](4)JNZ NEXTDINC SIMOV AL,[SI]