请编制程序,其功能是;内存中共有30个字节型数据,找出其中的两个ASCII字符串并进行校验。欲寻找的A
请编制程序,其功能是;内存中共有30个字节型数据,找出其中的两个ASCII字符串并进行校验。欲寻找的ASCII字符串由13个字符组成:(23H),7个ASCII字符,*(2AH),2个ASCII字符,回车符(0DH),换行符(0AH)。
校验方法为:对字符及字符,之间的7个ASCII字符进行异或操作,若异或操作结果的ASCII字符表示(异或操作结果高4位的ASCII字符表示在前,低4位的ASCII字符表示在后)与原字符串中字符,之后的两个ASCII字符相同,则将原字符串原样保存:反之,则将原字符串中的所有字符(共13个)均用字符!(21H)代替。
例如:
内存中有:33H,35H,23H('',第一个字符串开始),46H,41H,30H,2EH,34H,3DH,31H,2AH(''),32H,
31H,ODH,OAH,46H,23H('',第二个字符串开始),46H,41H,30H,2EH,34H,46H,41H,
30H,46H,41H,30H,2EH,34H,3DH,30H,2AH('*'),32H,31H,ODH,OAH,55H
结果为:23H,46H,41H,30H,2EH,34H,3DH,31H,2AH('*'),32H,31H(校验正确,该字符串原样保持),
ODH,OAH,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H(校验错,整个字符串用字符“!”代替)
部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
EXTRN LOAD:FAR, SAVE:FAR
N EQU 26
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N+4 DUP(?)
RESULT DB N DUP(0)
HH DB 2 DUP(0)
NAME0 DB 'INPUT.DAT',0
NAME1 DB 'OUTPUT.DAT',0
DATA ENDS
CODE SEGMENT
ASSUME 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+4 ; 字节数
CALL LOAD ; 从'INPUT. DAT' 中读取数据
;******** BEGIN ********
MOV SI,0
MOV DI,0
MOV BX,2 ; 两个ASCII 字符串
REPEAT: MOV AH,0
SEARCH: MOV AL,SOURCE[SI]
INC SI
CMP AL,''
(1) SEARCH
MOV RESULT[DI],AL
INC DI
SEARCh1: MOV AL,SOURCE[SI]
INC SI
CMP AL, (2)
JE ASCII
&nb
(1)JNZ (2)'*' (3)SEARCh1 (4)JNZ (5)13 (6)DEC BX 解析:本题是一道字符转换题,解决此类题型的关键是确定转换范围和条件。其中转换范围在题目中已给出为30个字符,同时还给出了需要查找的两个字符串。
接下来,首先计算指定范围内字符串中字符的异或操作结果,并将结果转换为对应的十六进制ASCII码字符,然后再与字符串结束符后面的两个字符进行比较,若相同,则直接将原来的字符串存入结果数据区,反之则将字符串中全部的字符替换为一个固定字符,存入结果数据区中。
此题目中涉及到的逻辑判断比较多,如果有一个地方出现错误,就很容易造成整个题目计算结果的错误,因此需要非常的认真和仔细。
设a=(√5-1)/2,求(a^5+a^4-2a^3-a^2-a+2)/a^3-a∵2a=√5-1 数学 2020-04-05 …
在如图的“静电感应实验”中,A、B是有绝缘支架的枕形导体.C是带正电的金属小球.请写出以下的操作中 物理 2020-04-06 …
中和滴定实验浓度计算公式c(B)=v(B)/v(A)*c(A)V(A)/V(B)各字母的含义 化学 2020-04-26 …
下列论据不同类的一项是A.化学家诺贝尔决心发明炸药,整整四年,他废寝忘食,作了几百次试验。B.爱迪 其他 2020-05-17 …
选出()里读音与其他不同的1.A.c(a)meraB.m(a)nC.h(a)rd2.A.(ea)s 英语 2020-05-22 …
定义一种运算“∧”,对于任意两个正数a和b,有a∧b=a+b分之ab.1.验证∧是否具有交换律结合 数学 2020-06-27 …
一、已知数集M满足条件:若a∈M,则(1+a)/(1-a)∈M(a≠0,a≠±1)(1)若3∈M, 数学 2020-07-30 …
交集性质:A∩(C∪A)=求救啊……>顺便还有并集性质:A∪(C∪A)=德摩根律:(C∪A)∩(C 数学 2020-07-30 …
乘法原理:某农场要在4种不同类型的土地上,引种试验A、B、C、D等4种不同例3.某农场要在4种不同 其他 2020-08-02 …
已知正数abc,且a/b+c=b/c+a=c/a+b=k.则在下列四个点中,在正比例函数y=kx图像 数学 2020-11-01 …