首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列方法进行压缩:从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,〈原字符〉三个字节
admin
2009-02-15
87
问题
请编制程序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://www.kaotiyun.com/show/YurZ777K
本试题收录于:
三级PC技术题库NCRE全国计算机三级分类
0
三级PC技术
NCRE全国计算机三级
相关试题推荐
企业系统规划(BSP)方法的主导思想是将信息作为企业的一种重要()。
管理信息系统应该支持企业各个层次的业务。包括:面向操作层的数据处理,面向战术层的数据管理和面向______的宏观调控。
软件的面向数据流的设计方法,利用其定义的映射方法可以把数据流图变换成软件结构,在映射中一般将数据流分为变换流和______两种。
研制人员接受任务,在了解企业概况(企业目标、边界、拥有资源、现行管理情况、外部环境的影响、现行信息系统状况、提出问题的迫切性等)的基础上,明确问题、定义需求,这是结构化方法中哪个阶段的任务
结构化查询语言SQL中的数据操作语言所实现的操作一般包括
下列关于关系数据库视图的说法中,()是正确的。Ⅰ.视图是关系数据库三级模式中的内模式Ⅱ.视图能够对机密数据提供一定的安全保护Ⅲ.视图对重构数据库提供了一定程度的逻辑独立性Ⅳ.对视图的一切操作最终都要转换为对基本表的操作Ⅴ.所有的
在数据库技术中,反映现实世界中事物的存在方式或运动状态的是
PC机的运算速度是指它每秒钟所能执行的指令数目。下面()是提高运算速度的有效措施。Ⅰ增加CPU中寄存器的数目Ⅱ提高CPU的主频Ⅲ增加高速缓存(CACHE)的容量Ⅳ扩充PC机磁盘存储器的容量
根据下面的数据段定义:DSEGSEGMENTADW1234HBDB56HCEQUA+1DSEGENDS执行MOVBX,C指令后,BX寄存器中的内容是
随机试题
H08MnA是属于()焊丝。
A、硝苯地平B、普萘洛尔C、维拉帕米D、硝酸甘油E、双嘧达莫阻断β受体、减慢心率的是
腋神经穿四边孔至肩关节后面,不参与四边孔构成的结构是
下列哪一项不是《2000年国际贸易术语解释通则》所涵盖的范围?( )
关于跑道边灯安装设置的说法,正确的是()。
由不同深度的计划构成的进度计划系统不包括( )。
当爆炸环境中气体、蒸气的密度比空气小时,电气线路应敷设在较低处或用电缆沟敷设。敷设电气线路的沟道、钢管或电缆,在穿过不同区域之间墙或楼板处的孔洞时,应采用()材料严密堵塞,防止爆炸性混合物或蒸气沿沟道、电缆管道流动。
宇航员是份令人羡慕的神圣职业,可以在茫茫太空中望到人类赖以生存的美丽蓝色星球——地球。但研究表明,在太空的失重环境下,宇航员的肌肉和骨骼会出现不同程度的退化和损失,身体的免疫系统也容易受到损害,人体抵抗力相应变弱。因此,为抵抗失重引发的不利影响,到国际空间
求微分方程的满足初始条件y(0)=1的特解.
•ReadthetextbelowaboutNike.•Foreachquestion31—40,writeonewordinCAPITALLETTERSEliminatingSweatshopsatN
最新回复
(
0
)