早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

请编制程序,其功能为:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串

题目

请编制程序,其功能为:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串以00H结束,长度不超过20个字节。

例如:

原字符串为:4EH,4EH,4EH,42H,1AH,31H,31H,00H:

新字符串为:4EH,42H,1AH,31H,00H

部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1. DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END 之间补充一段源程序,完成要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终产生运行结果。

部分程序如下:

; PROG1. ASM

EXTRN LOAD:FAR,SAVE:FAR

LEN EQU 20

N EQU 10

DSEG SEGMENT

SOURCE DW N DUP (?)

RESULT DW N DUP (0)

NAME0 DB 'INPUT1. DAT', 0

NAME1 DB 'OUTPUT1.DAT',0

DSEG ENDS

SSEG SEGMENT STACK

DB 256 DUP (?)

SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG, DS:DSEG;SS:SSEG

START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DSEG

MOV DS,AX

MOV ES, AX

LEA DX,SOURCE

LEA SI,NAME0

MOV CX,N

CALL LOAD

; *** BEGIN ***

…………

…………

…………

; *** END ***

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

参考答案
正确答案:; *** BEGIN *** LEA SISOURCE LEA DIRESULT LOOP1: MOV AL[SI] CMP AL00H JE EXIT NEXT: INC SI MOV AH[SI] CMP ALAH JE NEXT MOV [DI] AL INC DI JMP LOOP1 EXIT: MOV [DI] AL ; *** END *** [INPUT1. DAT 中的输入数据]: 4EH4EH4EH42H 1AH31H31H00H23H25H [输出结果] 4E 42 1A 31 00 00 00 00 00 00
; *** BEGIN *** LEA SI,SOURCE LEA DI,RESULT LOOP1: MOV AL,[SI] CMP AL,00H JE EXIT NEXT: INC SI MOV AH,[SI] CMP AL,AH JE NEXT MOV [DI] ,AL INC DI JMP LOOP1 EXIT: MOV [DI], AL ; *** END *** [INPUT1. DAT 中的输入数据]: 4EH,4EH,4EH,42H, 1AH,31H,31H,00H,23H,25H [输出结果] 4E 42 1A 31 00 00 00 00 00 00
看了请编制程序,其功能为:将一个字...的网友还看了以下:

用SQL计算同一个字符(汉字、字母、数字、表情、符号)连续重复出现的次数如:aaaa%%%vfah 其他 2020-05-16 …

请编制程序,其功能为:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串 计算机类考试 2020-05-23 …

一串字符数字,隐藏两位,不知道隐藏的两位是数字或者字母数字.数字0到9,字母是ABCDEF不分大小 数学 2020-06-09 …

有关英语选择题中的连字符.---Howoldistheboy?---Heis.A.six-mont 英语 2020-06-14 …

连字可以自己造英语词组?连字符号连用,好无语的,有的词典查带连字符的单词,查不到,去掉就可以查到, 语文 2020-06-18 …

将下列字连成首位相连的8个成语从“放”开始,一次连接所有字,将他们联成8个首尾相连的成语.放山高水 语文 2020-07-24 …

根据以下Excel图表,回答第64-67题:D6单元格的公式“=SUM(D2:D5)”中“:”符号表 其他 2020-10-31 …

连接运算符中“+”连接运算符如果一个是字符串而另一个是数字,则进行相加,结果为两个数字相加。可是我在 其他 2020-11-01 …

编程将两个字符串连接起来输入两行,每行一个字符串(只包含小写字母长度不超过100)输出一行一个字符串 其他 2020-11-07 …

在空格中填入数字1-5使得每行、每列和每宫(在数独中被粗线分割开的每块称为宫)数字都不重复,斜线相邻 数学 2020-11-10 …