首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
admin
2009-02-15
33
问题
请编制程序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全国计算机三级
相关试题推荐
以下2题是基于“学生一选课一课程”数据库中的三个关系:S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)
在关系数据库中,索引(index)是三级模式结构中的()。
按计算机信息系统的功能划分,一般认为它包括管理信息系统(MIS)、______和办公自动化系统。
原型化生命周期提供了一个完整、灵活、近于动态需求定义的技术,下述Ⅰ.能综合用户所提出的必要的需求Ⅱ.对模型可进行必要的裁减和组织,使接近目标系统Ⅲ.能综合最终用户、项目经理和原型开发人员各方要求Ⅳ.原型化方法也是有序和可以控
结构化生命周期方法的系统设计阶段可以分为两个阶段,这两个阶段是
一个大型信息系统的设计是由多方面的需求和多方面的技术所组成,下面不属于系统设计报告内容的是
网络中的计算机之间为了能正确交换数据,必须遵守事先约定好的通信规则。这些规则明确规定了所交换数据的【】和时序。
为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时可由机器直接寻址的物理地址,这一过程称为【】。
在计算机硬件系统的基本组成中,完成解释指令、执行指令的功能是()。
CPU运行在哪种执行状态下,可以调用特权指令
随机试题
能够引起心脏兴奋的平喘药有
《中华人民共和国劳动法》规定劳动者对用人单位管理人员违章指挥、强令冒险作业,有权()。
A.滑石粉B.硬脂酸镁C.氢化植物油D.聚乙二醇类E.微粉硅胶主要作为助流剂使用,可将颗粒表面的凹陷填满补平,改善颗粒流动性的辅料是
制作可摘局部义齿印模,选择的托盘与牙弓内外侧应有多大间隙
某小型写字楼的购买价格为50万元,其中投资者投入的权益资本为20万元,另外30万元年利率为7.5%、期限为30年、按年等额还款的抵押贷款。建筑物的价值为40万元,按有关规定可在25年内直线折旧。预计该写字楼的年毛租金收入为10万元,空置和收租损失为毛租金收
水准测量中,一个测站的观测需要检查的限差包括()。
按()的不同,会计报表分为资产负债表、利润表和现金流量表。
当下,我们的商界精英必须清醒地意识到,企业固然要顾及股东的利益.尽可能实现股东利益的最大化,但是获得社会资源进行生产的同时,也就承担了社会各方面利益相关者的责任。能否充分考虑这些利益相关者的利益,也日益成为评价企业业绩和企业伦理的重要尺度。对这段文字概括最
清朝晚期,被今人誉为“开眼看世界第一人”的是谁()
有的人说日本人礼节周到,但我觉得实际上未必就是那样。
最新回复
(
0
)