一道汇编语言编程题目 求大神帮帮忙

编写程序,将内存中以BUF单元开始的一个包含有10个数据的数据串(-14,20,3,-17,64,88,-96,-11,115,7),分成两个数据串:正数存到数据串STR1中,负数存到数据串STR2,并分别把正数和负数的个数存入PLUS和MINUS中。
给出你编写的汇编源代码:

第1个回答  2018-01-04
        DATA  SEGMENT
         BUF  DB        -14,20,3,-17,64,88,-96,-11,115,7
           N  EQU       $-BUF
        STR1  DB        N DUP(?)
        STR2  DB        N DUP(?)
        PLUS  DB        0
       MINUS  DB        0
        DATA  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA
      START:  MOV       AX,DATA
              MOV       DS,AX
              MOV       ES,AX
              LEA       SI,BUF
              LEA       DI,STR1
              LEA       BX,STR2
              MOV       CX,N
              CLD
         @0:
              LODSB
              AND       AL,AL
              JS        @1
              STOSB
              INC       PLUS
              JMP       @2
         @1:
              MOV       [BX],AL
              INC       MINUS
              INC       BX
         @2:
              LOOP      @0

              MOV       AH,4CH
              INT       21H
        CODE  ENDS
              END       START
; 注:0归到正数数组中

本回答被网友采纳
相似回答