请编制程序,其功能为:设由20个8位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数组(顺序不变)。结果存放在RESULT开始的内存单元中。 部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的

admin2012-03-05  29

问题 请编制程序,其功能为:设由20个8位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数组(顺序不变)。结果存放在RESULT开始的内存单元中。
   部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEOIN和END之间补充使其完整。
   对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终产生运行结果。
   部分程序如下:
   ; PROG1.ASM
       EXTRN  LOAD:FAR,SAVE:FAR
   LEN  EQU 20
   DSEG  SEGMENT
   SOURCE  DW  N DUP (?)
   RESULT  DW  N  DUP (0)
   NAME0  DB   ’INPUT1.DAT’,0
   NAME1  DB   ’OUTPUT1.DAT’,0
   DSEG ENDS
   SSEG SEGMENT STACK
       DB 256 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
           MOV  ES, AX
           LEA   DX, SOURCE
           LEA   SI,NAME0
           MOV  CX,N
           CALL  LOAD
      ; *** BEGIN ***
         …………
         …………
         …………
      ; *** END ***
           LEA  DX, RESULT
           LEA  SI,NAME1
           MOV  CX,N
           CALL  SAVE
           RET
   START   ENDP
   CSEG    ENDS
           END START

选项

答案 ; *** BEGIN *** LEA SI,SOURCE LEA DI,RESULT MOV CX,20 LOOP1: MOV AL,[SI] MOV AH,AL SHR AH,1 JNC LOOP2 CMP AL,0. JNL LOOP2 JMP EXIT LOOP2: MOV [DI],AL INC, DI EXIT: INC SI LOOP LOOP1 ; *** END *** [INPUT 1.DAT 中的输入数据]: 81 H,60H,8EH,38H,68H,60H,8EH,38H,68H,5EH, 50H,64H,52H,55H,48H,3AH,4AH,40H,42H,23H [输出结果] 60 8E 38 68 60 8E 38 68 5E 50 64 52 55 48 3A 4A 40 42 23 00

解析
转载请注明原文地址:https://jikaoti.com/ti/CM27FFFM
0

相关试题推荐
最新回复(0)