欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着红外数据通信系统传输的数据信息,其

时间:2017-07-13

请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着红外数据通信系统传输的数据信息,其编码形式为:AACCXYXYDDEE,表示传送的数据为压缩BCD码XY。如AACCl212DDEE表示数据12。现要求编程实现解码,如果压缩BCD码不是以AACC开始或者不是以DDEE结束或中间两个BCD码不同,则此数据不解码。解码后的BCD码存入 RESULT开始的内存区域。


例如:


原信息为:AAH,CCH,05H,05H,DDH,EEH,AAH,C8H,43H,43H,DDH,0EH,AAH,CCH,87H,87H,DDH,EEH,......


结果为:05H,87H,……


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


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


对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。


试题程序:


EXTRN LOAD:FAR, SAVE:FAR


N EQU 10


STAC SEGMENT STACK


DB 128 DUP (?)


STAC ENDS


DATA SEGMENT


SOURCE DB 6*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,6*N ; 字节数


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


; **** BEGIN ****


LEA SI,SOURCE


MOV DI,OFFSET RESULT


MOV CX, (1)


LPST: MOV DL, 6


MCLP1: MOV AL, (2)


MOV BX,SI


CMP AL,0AAH


JNZ NEXTD


INC SI


MOV AL,[SI]


CMP AL,0CCH


(3)


INC SI


MOV AL,[SI]


MOV DH,AL


INC SI


MOV AL,[SI]


(4)


JNZ NEXTD


INC SI


MOV AL,[SI]<



答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。


答 案:(1) 6*N (2) [SI] (3) JNZ NEXTD(4) CMP DH AL (5) INC BX (6) LOOP MCLP1
(1) 6*N (2) [SI] (3) JNZ NEXTD(4) CMP DH, AL (5) INC BX (6) LOOP MCLP1 解析:依次读入某组数据的元素,并按题目要求与指定数比较,若不相等,则准备读入下一组数据;若相等,则继续读入数据并比较,一直到读完该数组数据,并保存到目的区。
相关推荐

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。