题目内容 (请给出正确答案)
[主观题]

请编制程序PROG1.ASM,其功能是:对一个由可打印ASCII字符(ASCII码20H-7FH)组成的字符串可采用下列

请编制程序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

_____ _____

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“请编制程序PROG1.ASM,其功能是:对一个由可打印ASC…”相关的问题

第1题

请编制程序,其功能是:内存中连续存放着两个无符号字节数序列Ak和Bk(k=0,1,…,9),求序列Ck,Ck=Ak÷B

请编制程序,其功能是:内存中连续存放着两个无符号字节数序列Ak和Bk (k=0,1,…,9),求序列Ck,Ck=Ak÷Bk (运算结果按序以字的形式连续存放,其中低字节为商,高字节为余数)。

例如:

序列Ak为:01H,7FH, 80H,FFH…

序列Bk为:PFH,80H,7FH,01H…

结果Ck为:0100H(00H为商、01H为余数),7F00H,0101H,00FFH…

部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中,运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGm和END之间原有的代码并自行编程来完成所要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

[试题程序]

EXTRN LOAD:FAR,SAVE:FAR

N EQU 10

STAC SEGMENT STACK

DB 128 DUP(?)

STAC ENDS

DATA SEGMENT

SOURCE DB N*2 DUP(?)

RESULT DW N DUP(0)

NAME0 DB 'INPUT.DAT',0

NAME1 DB 'OUTPUT.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

LEA DX,SOURCE ;数据区起始地址

LEA SI,NAME0 ;原始数据文件名

MOV CX,N*2 ;字节数

CALL LOAD ;从 'INPUT.DAT' 中读取数据

; ******** BEGIN ********

MOV DI,OFFSET RESULT

MOV BX,0

(1)

PRO: MOV (2)

(3) ,SOURCE[BX]

CBW

DIV (4)

MOV [DI], (5)

ADD DI,2

(6)

DEC CX

(7) PRO

; ******** END ********

LEA DX,RESULT ;结果数据区首址

LEA SI,NAME1 ;结果文件名

MOV CX,2*N ;结果字节数

CALL SAVE ;保存结果到文件

RET

START ENDP

CODE ENDS

END START

点击查看答案

第2题

把数据同时存放在两个或者多个硬盘驱动器上,每个驱动器存放一份拷贝的技术称为【 】。

点击查看答案

第3题

视频扫描仪的垂直扫描频率又被称为【 】。

点击查看答案

第4题

请编制程序PROG1.ASM,其功能是:内存中连续存放着由20个无符号字节组成的一个序列,请将它们排成升

序(从小到大)。

程序中,COUNT为序列元素个数,OFFL为序列偏移量,BX为交换标志寄存器(BX =1,说明此趟排序扫描后未发生交换操作,表示序列中的元素已排好序)。

例如:内存中有01H,04H,02H,…(假设后十七个字节均大于04H)

结果为01H,02H,04H,…(后跟十七个字节,按从小到大的顺序排列)

部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUT- PUT1.DAT中。请编写BEGIM到END之间代码。对程序必须进行汇编,并与IO.OBJ连接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分);

部分源程序如下:

EXTRN LOAD:FAR,SAVE:FAR

N EQU 20

STAC SEGMENT STACK

DB 128 DUP (?)

STAC ENDS

DATA SEGMENT

SOURCE DB N DUP (?)

RESULT DB N DUP (0)

NAME0 DB 'INPUT1. DAT', 0

NAME1 DB 'OUTPUT1. DAT', 0

COUNT DW ?

OFFL DW ?

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

LEA DX, SOURCE ; 数据区起始地址

LEA SI,NAMEO ; 原始数据文件名

MOV CX,N ; 字节数

CALL LOAD ; 从'INPUT1.DAT'中读取数据

**** BEGIN ****

***** END *****

LEA DX,RESULT ; 结果数据区首地址

LEA SI,NAME1 ; 结果文件名

MOV CX,N ; 结果字节数

CALL SAVE ; 保存结果到文件

RET

START ENDP

CODE ENDS

END START

相关知识:

●无符号数比较大小。

有符号数和无符号数比较大小采用的是不同的指令,本题目要求将无符号数进行排序,这里仅介绍无符号数的比较指令。

(1)“高于”或“不低于等于”条件转移指令

指令格式:JA/JNBE短标号地址

(2)“高于等于”或“不低于”条件转移指令

指令格式:JAE/JNB短标号地址

(3)“等于”条件转移指令

指令格式:JE 短标号地址

(4)“不等于”条件转移指令

指令格式:JNE 短标号地址

(5)“低于等于”或“不高于”条件转移指令

指令格式:JBE/JNA 短标号地址

(6)“低于”或“不高于等于”条件转移指令

指令格式:JB/JNAE 短标号地址

●数组的排序

数组的排序的方法有很多种,可以采用“冒泡排序”、“直接插入排序”、“简单选择排序”等算法复杂度为O(n(上标)2)的简单排序算法,也可采用那些算法复杂度为O(nlog(下标)2n)或O(d (n+rd))的算法,但简单排序算法比较容易理解,编程比较方便。通过阅读我们发现出题者的意愿就是采用冒泡排序方法,因为它要多次扫描数组,而且有一个标志指明一趟扫描是否发生数据交换,这是典型冒泡排序方法。当然大家也可采用别的排序算法,作为题目的分析者我们就不采用别的方法了。

●串的移动

点击查看答案

第5题

中断处理的一般过程大体可分为六步,即中断请求;中断响应;保护现场;【 】;恢复现场和开中断,返回等

点击查看答案

第6题

在8088中,AD7~AD0是【 】线。

点击查看答案

第7题

现代操作系统的主要特征是并发性和______。

点击查看答案

第8题

计算机存储器系统采用分层结构,其中容量大、速度最慢的光盘库、磁带库等,它们称为存储器,主要用于

计算机存储器系统采用分层结构,其中容量大、速度最慢的光盘库、磁带库等,它们称为 存储器,主要用于存储打量存档(备份)的文件信息。

点击查看答案

第9题

光盘刻录机的速度一般有两个技术指标:数据读取速度和数据读写速度,两者相比,通常数据读取速度于

光盘刻录机的速度一般有两个技术指标:数据读取速度和数据读写速度,两者相比,通常数据读取速度 于数据写入速度。

点击查看答案

第10题

在Windows 98/XP中, 用户可以在“TCP/IP属性”对话框中设置本地计算机的IP地址、、网址的IP地址和服

在Windows 98/XP中, 用户可以在“TCP/IP属性”对话框中设置本地计算机的IP地址、 、网址的IP地址和服务器的IP地址。

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信