首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
admin
2009-02-15
73
问题
请编制程序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全国计算机三级
相关试题推荐
企业系统规划方法一般通过将过程和由其产生的数据类分组、归并形成其主要系统,其实现顺序是()。
业务流程图、数据流程图、数据字典、系统流程图、模块结构图是结构化信息系统分析与设计中使用的几种主要的工具,以下是关于这几种工具之间关系的描述。以下描述中错误的是()。Ⅰ.数据流程图是通过对业务流程图抽象得到的Ⅱ.系统流程图是由数据流程图导出的
在信息系统开发中需要确定开发策略,其中正确的是()。
下列不能实现与关系代数表达式相同查询的SQL命令是在关系SC中,查询学习课程号为′DB′,且成绩在60至90之间的学生学号的正确的SQL命令是
战略数据规划方法将产品、服务及资源的生命周期划分为四个有序的阶段,其顺序应该是
按计算机信息系统的功能划分,一般认为它包括管理信息系统(MIS)、______和办公自动化系统。
系统设计的内容包括总体设计和详细设计。具体内容是:Ⅰ.代码设计Ⅱ.逻辑设计Ⅲ.输入输出设计Ⅳ.模块设计Ⅴ.软件结构设计Ⅵ.数据库设计以上不属于详细设计的内容是
下面程序的功能是利用逻辑尺对BUF变量中的数据进行变换,执行该程序后,以RESULT为首地址的前2个字节单元中的数据,依次为【】。DSEG SEGMENTBUF DB 1,5,4,0,7,9,2,6L EQU
ASDL MODEM分为内置式,外置式和______三类。
随机试题
强直性脊柱炎主要的X线表现为
患者女,40岁。慢性肾小球肾炎病史10年,因反复发作不愈,影响生活和工作,患者表现非常焦虑。护士针对该患者采取的心理护理内容中,重要性最低的是
乙欠甲货款,二人商定由乙将一块红木出质并签订质权合同。甲与丙签订委托合同授权丙代自己占有红木。乙将红木交付与丙。下列哪一说法是正确的?(2015年卷三第8题)
中国现行房产税有()。
适用于高速公路、一级公路沥青下面层及以下层次,二级及二级公路以下公路的各个层次的沥青为()。
申请证券评级业务许可的资信评级机构,应具有中国法人资格,实收资本与净资产均不少于人民币()万元。
教师在上完一节课后总要有个结束语,这是教学评价的()
以募集方式设立股份有限公司的,发起人认购的股份不得多于公司股份总数的35%。()
新华大学在北戴河设有疗养院,每年夏季接待该校的教职工。去年夏季该疗养院的人住率,即全部床位的使用率为87%,来此疗养的教职工占全校教职工的比例为10%。今年夏季来此疗养的教职工占全校教职工的比例下降至8%,但人住率却上升至92%。以下各项如果为真,都有助于
Usuallythethingswedreamof,thenworkandstrugglefor,arewhatwevaluemost.Havemygranddaughters,blessedwithabundan
最新回复
(
0
)