例如:
内存中有 0000H,000FH,FFFFH,…
结果为 10H,0CH,00H,…,最后为n
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果 (无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。
PROG1.ASM文件内容如下:
E.XTRN LOAD:FAR,SAVE:FAR
N EQU 10
STAC SEGMENT STACK
D.B 128 DUP(?)
STAC ENDS
D.ATA SEGMENT
SOURCE DW N DUP(?)
RESULT DB N+1 DUP(0)
NAME0 DB INPUT1.DAT',0
NAME1 DB OUTPUT1.DAT',0
D.ATA ENDS
C.ODE SEGMENT
A.SSUME CS:CODE,DS:DATA,SS:STAC
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA DX,SOURCE ;数据区起始地址
LEA SI,NAME0 ;原始数据文件名
MOV CX,N*2 ;字节数
C.ALL LOAD ;从'INPUT1.DAT'中读取数据
;* * * * BECIN * * * *
MOV DI,OFFSET RESULT
MOV CL,N
MOV BX,0
MOV DH,0
PRO: MOV DL,0
MOV AX,SOURCE[BX]
C.OUNT: _____ _____
_____ JUMP
INC DL
JUMP: DEC CH
JNZ _____
MOV [DI],DL
A.DD DH,DL
INC DI
A.DD _____
D.EC CL
JNZ PRO
&nbs
[试题]请编制程序,其功能是:内存中连续存放着10个十六位二进制数。分别对每个数的高位字节和低位字节进行逻辑与运算及逻辑或运算。运算结果以字的形式按序连续存放(低位字节存入逻辑与运算的结果,高位字节存入逻辑或运算的结果)。例如:内存中有:AA55H,55AAH,FFAAH结果为: PP00H,FF00H,FFAAH部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放, 由过程SAVE保存到文件OUTPUT1.DAT中。
[试题]请编制程序PROG1.ASM,其功能是:内存中连续存放着二个有符号字节序列Ak和Bk,求序列Ck(Ck=Ak+Bk)。例如:源数Ak:0lH,02H,02H,02H,04H,05H…源数Bk:01H,02H,02H,02H,04H,05H…结果Ck:02H,04H,04H,04H,08H,0AH…部分程序已经给出,其中原始数据由过程LOAD从文件INPUTl.DAT中读入SOURCE开始的内存元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。请在BEGIN
[试题]请编制程序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,C
[试题]请编制程序,其功能是:内存中连续存放着10个二进制字节数,需对此组数进行加密,其方法为:将前一个字节数(两位十六进制数a1a2表示)的低位十六进制数a2与后一个字节数(两位十六进制数b1b2表示)的高位十六进制数b1进行交换;第一个字节数的高位十六进制数与最后一个字节数的低十六进制数进行交换,加密后的结果存入内存。例如:内存中有:50H,61H,72H,83H,94H,A5H,B6H,C7H,D8H,E9H结果为:96H,07H,18H,29H,3AH,4BH,5CH,6DH,7EH,85H部分程
[试题]请编制程序,其功能是:内存中有一个由16个十六位二进制数组成的数组(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从文件INPUT.DAT中读入(L在
[试题]请编制程序PROG1.ASM,其功能是:对10个无符号字节数据排序(升序),然后剔除第一个数和最后一个数,并按四舍五入原则计算其余8个数据的算术平均值。将剩余的8个数据存入指定的内存区域中,其后存放平均值。例如:内存中有:1,5,4,0,7,9,2,6,8,3结果为:1,2,3,4,5,6,7,8,5部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件 OUTPUT1.DAT中。填空BE
[试题]请编制程序,其功能是:内存中连续存放着10个无符号8位格雷码表示的数,现将此10个数转换成10个8位二进制数,结果存入内存,其转换方法为二进制数的最高位D[7]与格雷码的最高位G[7]相同,二进制数的其余七位D[k](k=6,…,0)分别为格雷码的位G[k](k=6,…,0)与二进制数的位D[k+1](k=6,…,0)异或的结果。例如:内存中有:00H,03H,2BH,67H,0CH,15H,54H,02H,D8H,C7H结果为:00H,02H,32H,45H,081-I,19H,67H,03H,
[试题]请编制程序,其功能是:内存中连续存放着五个用压缩型(组合型)BCD码表示的2位十进制数,请将它们转换成十个 ASCII字符,高位的BCD码转换后放在较高的地址单元。例如:内存中有:21H,43H,(共五个字节)结果为:31H('1'),32H('2'),33H('3'),34H('4'),…(共十个字节)部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DA丁中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放, 由过程SAVE保存到文件OUTPUT
[试题]请编制程序,其功能为:内存中连续存放着20个无符号字节数,求它们的和。和值按字的形式存放,此前先按序存放参加运算的20个字节。例如;内存中有:01H,02H,03H ……结果为:01H,02H,03H …… (参加运算的字节),后跟一个字(为前面各字节的和)部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END之间补充使其完整,完成要求的功
[试题]请编制程序,其功能是:剔除10个8位无符号二进制数据中的最大值和最小值,然后按四舍五入原则计算其余8个数据的算术平均值,将剔除最大值和最小值之后的8个数据依次存入指定的内存区域中,并在其后存放平均值。例如:内存中有:01H,05H,04H,00H,07H,09H,02H,06H,08H,03H结果为: 01H,05H,04H,07H,02H,06H,08H,03H,05H部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从 RESU