当前位置: 答题翼 > 问答 > 计算机类考试 > 正文
目录: 标题| 题干| 答案| 搜索| 相关
问题

请编制程序PROG1.ASM 其功能是:内存中连续存放着二个有符号字节序列Ak和Bk 求序列Ck(Ck=Ak+Bk)。


请编制程序PROG1.ASM,其功能是:内存中连续存放着二个有符号字节序列Ak和Bk,求序列Ck(Ck=Ak+Bk)。例如:

源数Ak:0lH,02H,02H,02H,04H,05H…

源数Bk:01H,02H,02H,02H,04H,05H…

结果Ck:02H,04H,04H,04H,08H,0AH…

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

请在BEGIN和END之间补充一段源程序,完成要求的功能。

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

PROG1.ASM文件内容如下:

EXTRN LOAD: FAR, SAVE: FAR

N EQU 10 ;每个序列的长度

STAC SEGMENT STACK

DB 128 UP()

STAC ENDS

DATA SEGMENT

SOURCE DB N * 2DUP() ;顺序存放AO, ..., A9 ,BO,.. ,B9

RESULT DW N DUP(0) ;顺序存放CO,...,C9

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

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

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

MOV CX, N*2 ;字节数

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

; * * * * BEGIN * * * *

MOV DI,OFFSET RESULT ;结果从RESULT开始存放

MOV BX,0

MOV CX,N

PRO: MOV AH ,0

MOV AL,_____ ;序列Bk中的一个字节

MOV DL, AL ; 暂存Bk

_____ AL, SOURCE [BX] ; Ck = Bk + Ak

JNO STAY ; 无溢出转STAY

JUMP1: MOV AH ,00 ; 有溢出

ADD DL,O

JNS JUMP ; Bk是正数(为一个正数加上

; 一个正数,结果为负数的溢出

; 情况)转JUMP(AH已为OOH)

MOV AH,_____ ; Bk是负数(为一个负数加上

&nbs

请帮忙给出正确答案和分析,谢谢!

参考答案
您可能感兴趣的试题
  • 程序Cmody051.c 其功能是统计输入字符串中大写英文字母的个数。请改正错程序中的错误。如输入:abcDEFGH123输出:5

  • 程序Cmody091.C 其功能是计算1至100之间的奇数之和 偶数之和。请改正错程序中的错误。

  • 程序Cmody062.c 其功能是将程序中的两个字符串ABC xyz连接在一起 并输出ABCxyz。请改正错程序中的错误。

  • 请编制程序PROG1 ASM 其功能是:内存中连续存放着12个字节的数字ASCII码字符串 将它们转换成相应

  • 请编制程序PROG1.ASM 其功能是:计算10×3矩阵中每一行元素(八位二进制数)之和 并将其存放在指定的

  • 请编制程序 将内存中连续存放着的10个无符号16位二进制数 采用近似计算法求此10个数的近似平方根