首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
admin
2009-02-15
35
问题
请编制程序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全国计算机三级
相关试题推荐
计算机只能直接识别和执行机器语言,因此,使用各种高级程序设计语言编写的源程序代码必须要经由【】翻译成机器语言表示的目标程序。
在信息系统开发中需要确定开发策略,其中正确的是()。
任何一个信息系统的建设都是一项复杂的社会—技术工程,有很多各种知识背景的人员参与。人员之间的交流和通信是一个极其重要的问题。Ⅰ.叙述性文字Ⅱ.动态的工作模型Ⅲ.图形模型Ⅳ.数据字典Ⅴ.逻辑规则在严格定义方法中,通信的基本手段是
BSP研究包含11个活动。其中定义将来信息系统的蓝图,并且是BSP由对目前情况的研究转向对将来计划的综合的主要步骤是
数据字典是对数据定义信息的集合,它所定义的对象都包含于
从静态的观点看,操作系统中的进程是由程序段、数据和上【】三部分组成的。
良好的程序设计风格对面向对象实现来说尤其重要,不仅能够明显减少______的开销,而且有助于在新项目开发中重用已有的程序代码。
PC机中CPU执行MOV指令从存储器读取数据时,数据搜索的顺序是
随机试题
信息管理的目的是通过(),使决策者及时、准确地获得信息。
安全色是被赋予安全意义具有特殊属性的颜色,包括红、蓝、黄、绿四种。下列关于安全色对应的表述中,正确的是()。
中国证监会及其派出机构可以根据审慎监管原则,要求财务顾问提供已按照《上市公司并购重组财务顾问业务管理办法》的规定履行尽职调查义务的证明材料、工作档案和工作底稿,并对财务顾问的()等方面进行非现场检查或者现场检查。Ⅰ.公司治理Ⅱ.内部
定位决定一个城市未来的走向和高度,淄博市市委、市政府认真总结淄博城市发展的历史经验和教训,深入研究基础条件和发展阶段,立足充分发挥组群式优势,彰显组群式特色,着眼较长时期发展,提出了“四位一体、组群统筹、全域融合”城市工作思路和建设现代化组群式大城市目标任
某城市小区的居民被附近一个建筑工地项目严重干扰。噪音下许多居民无法集中精力,工地的长明灯使许多人无法入睡。还有的人甚至产生轻微的病症,如头痛和眩晕。社区工作机构的工作者依据居民的意见将社区居民组织起来,搜集了噪音的具体数据资料,与居民一起到建筑公司解决这一
下列刊物由维新派创办的是()
IPv6数据报的基本报头(不包括扩展头)长度为()。
数据流图中带有箭头的线段表示的是( )。
目前有许多不同的音频文件格式,下列哪一种不是数字音频的文件格式()。
ThePopularityofInstantMessagingTechnologies1.近来移动QQ、微信等通信方式在大学生中十分流行2.这些通信方式有许多优点3.我的观点
最新回复
(
0
)