请编制程序,其功能是:内存中连续存放着两个无符号字节序列AK和BK((K=0,1,……,9),求序列CK,CK=AK-BK(CK以有符号字的形式按C0,C1……,C9的顺序连续存放)。 例如: 序列AK为:30H,FFH,80H,FFH…

admin2010-12-14  40

问题 请编制程序,其功能是:内存中连续存放着两个无符号字节序列AK和BK((K=0,1,……,9),求序列CK,CK=AK-BK(CK以有符号字的形式按C0,C1……,C9的顺序连续存放)。
   例如:
   序列AK为:30H,FFH,80H,FFH…
   序列BK为:00H,FFH,FFH,OAH…
   结果CK为:0030H,000H,FF81H,FFF5H…
   部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SURCE开始的内存单元中,运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
   请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和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      ’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
                 (1)  
   PRO:         MOV      AH,0
                MOV      AL,SOURCE[BX]                ; 序列Ak中的一个字节
                SUB      AL,  (2)                     ; Ck=Ak-Bk
                 (3)    JUMP                          ; 无借位转JUMP
                MOV      AH,  (4)                     ; 有借位转换成有符号字(为负)
   JUMP:        MOV        (5)  ,A
                ADD      DI,2
                INC      BX
                DEC      CX
                JNZ      PRO
   ;   ********  END ********
                LEA      DX,RESULT                   ; 结果数据区首址
                LEA      SI,NAME1                    ; 结果文件名
                MOV      CX,N*2                      ; 结果字节数
                CALL     SAVE                        ; 保存结果到文件
                RET
   START        ENDP
   CODE         ENDS
                END    START

选项

答案(1) MOV CX,N (2) SOURCE[BX+N] (3) JNC (4) OFFH (5) [DI]

解析
转载请注明原文地址:https://kaotiyun.com/show/2dgZ777K
0

随机试题
最新回复(0)