首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
admin
2009-02-15
67
问题
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节来代替(假定n不超过255)。
设内存中从SOURCE开始有一用上述方法压缩的字符串,其以00H结束,解压后长度不超过 100。试编程对其解压缩,结果存入RESULT开始的内存单元。
例如:
原串:41H,1BH,06H,43H,61H,00H
解压后:41H,43H,43H,43H,43H,43H,43H,61H,00H("ACCCCCCa")
部分程序已在PROG1.ASM中给出,请填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令,但功能相当的多条指令亦可)或删除BEGIN和 END之间原有的代码并自行编写程序片段来完成要求的功能。
原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
对程序必须进行汇编,并与IO.OBI链接产生PROG1.EXE执行文件,最终运行程序产生结果 (无结果或结果不正确者均不得分)。
PROG1.ASM文件内容如下:
EXTRN LOAD:FAR,SAVE:FAR
N EQU 100
ESC_CODE EQU 27
STAC SEGMENT STACK
DB 128DUP(?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(0)
RESULT DB N DUP(0)
NAME0 DB ’INPUT1.DAT’,0
NAME1 DB ’OUTPUT1.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
MOV ES,AX ;置附加段寄存器
LEA DX,SOURCE ;数据区起始地址
LEA SI,NAME0 ;原始数据文件名
MOV CX,N ;字节数
CALL LOAD ;从’input1.DAT’中读取数据
;* * * * BEGIN * * * *
LEA SI,SOURCE
LEA DI,RESULT
CLD
LO: LODSB
CMP AL,0
JE QUIT
CMP AL,ESC_CODE
_____ EXPAND
_____ _____
JMP LO
EXPAND: _____ _____ ;解压
XOR CX,CX
_____ _____
_____ _____
_____ _____
_____ _____
JMP LO
QUIT:
STOSB ;STORE THE ’00H’
;* * * * END * * * *
LEA DX,RESULT ;结果数据区首址
LEA SI,NAME1 ;结果文件名起始地址
MOV CX,N ;字节数
CALL SAVE ;保存结果到’OUTPUT1.DAT’文件中
RET
START ENDP
CODE ENDS
END START
选项
答案
;* * * * BEGIN * * * * LEA SI,SOURCE LEA DI,RESULT CLD LO:LODSB ;从源数据区取一个字节放入AL CMP AL,0 ;判断AL中是否是可打印ASCII字符 JE QUIT ;若不是,则退出 CMP AL,ESC_CODE 判断是否是 ESC JZ EXPAND ;若是,则进行解压 MOV [DI],AL ;若不是,则保存,接着取下一个字节 INC DI JMP LO EXPAND:MOV AL,[SI] ;解压,取出该字符的个数,放入CX中 XOR CX,CX MOV CL,AL INC SI AGAIN:MOV AL,[SI] MOV [DI],AL INC DI LOOP AGAIN INC SI JMP LO QUIT: STOSB ;STORE THE ’00H’ ;* * * * END * * * * 输入数据 41 1B 03 42 65 1B 19 42 43 1B 03 44 45 1B 23 48 49 4A 4C 1B 0C 47 1B 0E 4D 00 00 00 00 00 00 00 00 00 000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 输出结果: 41 42 42 42 65 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 43 44 44 44 45 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 49 4A 4C 47 47 47 47 47 47 47 47 47 47 47 47 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 00
解析
转载请注明原文地址:https://kaotiyun.com/show/YurZ777K
本试题收录于:
三级PC技术题库NCRE全国计算机三级分类
0
三级PC技术
NCRE全国计算机三级
相关试题推荐
为保证信息系统开发成功,正确的【】和正确的开发策略(方法)是不可少的。
企业系统规划方法一般通过将过程和由其产生的数据类分组、归并形成其主要系统,其实现顺序是()。
原型提供有效集成化字典是一项关键的软件需求,它在下列原型生命周期的哪一步中提供
结构化方法是基于结构化生命周期模型来组织实施的。以下不属于这种模型特点的是
在请求页式存储管理中,当查找页不在什么里面时,要产生缺页中断?
数据库管理系统中的数据操纵语言(DML)所实现的操作一般包括:()。
一般将中断源分成两大类:强迫性中断和自愿性中断。其中,强迫性中断包括输入/输出中断、硬件故障中断、时钟中断、控制台中断和______。
汉字编码基本上分为3类:标准交换码、【】和内码。
下列哪一条是不合法的指令?
随机试题
政策分析集团模型的提出者是
肩关节脱位最多见的类型是
一平面简谐波沿x轴负向传播,角频率为∞,波速为u。设t=T/4时的波形如图2-45所示。则该波的表达式为()。
下列选项中,()可以作为龙债券的标价。
某银行信贷审查人员在对一家借款企业进行财务分析时,发现该企业近3年来虽然流动资金占总资产比例没有太大变化,但速动资产比例在逐年减少,而存货和其他应收款占比逐年增加,反映出企业营运资金有所沉淀,资金使用效率逐步恶化。该信贷审查人员在对企业进行财务分析时,主要
邓某是甲食品厂的采购员,在一次为甲食品厂采购小米的过程中。邓某与乙公司串通,将一批劣质小米以高价卖给了甲食品厂,给甲食品厂造成了20万元的损失。根据民事法律制度的规定,下列表述中,正确的有()。
Schoolbuildingsthemselvescanreflectliberalorconservativeviewsaboutwhatshouldgooninaclassroom.Theearliestschoo
WriteonANSWERSHEETTWOanoteofabout50~60wordsbasedonthefollowingsituation:YouareinformedthatyourfriendLil
InthenorthofChina,thereliesa6,700-kilometer-long(4,161-mile-long)ancientwall.NowwellknownastheGreatWallofChi
A、Bothtimedepositandcurrentdeposithavethesameinterestrate.B、Theinterestrateishighforcurrentdeposit.C、Theinte
最新回复
(
0
)