请编制程序,其功能为:将内存中存放的连续的30个二进制数(0到100之间),按数值大小分别进行统计,0~59为D,60~74为C,75~84为B,85~100为A,统计出A、B、C、 D的个数,并按A、B、C、D次序存放在内存中。 例如:内存中原始数

admin2009-02-15  49

问题 请编制程序,其功能为:将内存中存放的连续的30个二进制数(0到100之间),按数值大小分别进行统计,0~59为D,60~74为C,75~84为B,85~100为A,统计出A、B、C、 D的个数,并按A、B、C、D次序存放在内存中。
   例如:内存中原始数据为:21H,3CH,4DH,31H,4FH,51H,56H
   统计结果:1,3,1,2
   部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的内存单元,转换结果(要求从RESULT 开始读入)由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END之间补充使其完整,完成要求的功能。或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
   对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终产生运行结果。
   部分程序如下:
    ;PROG1.ASM
       EXTRN  LOAD:FAR, SAVE:FAR
   N EQU  30
   DSEG SEGMENT
   SOURCE DB N DUP (?)
   RESULT DB N DUP (0)
   NAME0 DB  ’INPUT1. 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
           MOV  ES,  AX
           LEA   DX, SOURCE
           LEA   SI,NAME0
           MOV  CX,N
           CALL  LOAD
      ; *** BEGIN ***
           MOV  CX,N
           LEA  SI,SOURCE
   CONT:   MOV  AL,[SI]
           _____________
           JB  LB
           INC  RESULT
           JMP  OK
   LB:     CMP  AL, 75
           JB  LC
           INC ______
           JMP  OK
   LC:     CMP  AL,60
           JB  LD
           ____________
               JMP  OK
   LD:     ____________
   OK:     INC  SI
           LOOP CONT
      ; *** END ***
            LEA  DX,RESULT
            LEA  SI,NAME1
            MOV  CX,4
            CALL  SAVE
            RET
   START    ENDP
   CSEG     ENDS
            END START

选项

答案 ; *** BEGIN *** MOV CX, N LEA SI, SOURCE CONT: MOV AL, [SI] CMP AL, 85 JB LB INC RESULT JMP OK LB: CMP AL, 75 JB LC INC RESULT+1 JMP OK LC: CMP AL, 60 JB LD INC RESULT+2 JMP OK LD: INC RESULT+3 OK: INC SI LOOP CONT ; *** END *** [INPUT1.DAT 中的输入数据]: 60H,3CH,4DH, 31H,4FH,51H,56H,59H,41H,32H 35H,21H,4FH,3AH,21H,2BH,51H, 11H,45H,44H 3AH, 1EH,3BH,34H,3CH,46H,63H,24H,40H,3EH [输出结果]: 04 05 08 OD

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

最新回复(0)