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

请编制程序PROG1.ASM,其功能是:内存中连续存放的20个8位有符号数(补码)是由一个8位A/D转换器采集

时间:2018-05-16

请编制程序PROG1.ASM,其功能是:内存中连续存放的20个8位有符号数(补码)是由一个8位A/D转换器采集的双极性信号(Xn),现要求对该信号作如下限幅处理(处理后的信号记为Yn):


a) Yn=-100 Xn<-100


b) Yn=Xn ∣Xn∣≤100


c) Yn=100 Xn>100


例如:


Xn:68H,60H,8EH,38H,…


Yn:64H,61H,9CH,38H,…


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


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


对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。


试题程序:


EXTRN LOAD:FAR, SAVE:FAR


N EQU 20


M EQU 100


DSEG SEGMENT


SOURCE DW N DUP(?)


RESULT DW N DUP(0)


NAME0 DB 'INPUTI.DAT',0


NAME1 DB 'OUTPUT1.DAT',0


DSEG ENDS


SSEG SEGMENT STACK


DB 128 DUP(?)


SSEG ENDS


CSEG SEGMENT


ASSUME CS:CSEG, DS:DSEG, SS:SSEG


START PROC FAR


PUSH DS


XOR AX,AX


PUSH AX


MOV AX,DSEG


MOV DS,AX


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


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


MOV CX,N ; 字节数


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


; **** BEGIN ****


LEA SI,SOURCE


LEA DI,RESULT


(1)


NEXT: MOV AX,[SI]


CMP AX,-M


(2) L1


CMP AL,M


(3)


MOV AL,M


JMP L2


L1: MOV AL,-M


L2: MOV [DI],AL


(4)


(5)


(6)


; **** END ****


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


LEA SI,NAME1 ; 结果文件名起始地址


MOV CX,N ; 字节数


CALL SAVE ; 保存结果到OUTPUT1.DAT文件中


RET


START ENDP


CSEG ENDS


&nbs



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


答 案:(1)MOV CX20 (2) JL (3) JL L2(4) ADD SII (5) ADD DI1 (6) LOOP NEXT
(1)MOV CX,20 (2) JL (3) JL L2(4) ADD SI,I (5) ADD DI,1 (6) LOOP NEXT 解析:本题要求对20个数进行循环转换,但本题中没有设置计数器,所以应该在循环体前面的一个空白处设置计数器。程序中,比较指令后通常是转移指令,需要考虑一个比较操作后应做如何处理。在一个数据处理完毕并存入目的地址后,应准备处理下—个数据,所以应修改源操作数地址和目的操作数地址,并回到循环体开始部分重新进行操作。
相关推荐

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

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