回 帖 发 新 帖 刷新版面

主题:能不能帮忙看看这个程序,为什么总是输出FFFF?

找出首地址为DATE的10个字数组中的最小偶数,放到AX中,并显示出来。下面是我编的,请看下吧,错哪里了???
       DATA  SEGMENT
        DATE  DB        12H,56H,9DH,0D7H,45H,78H,89H,0F5H,60H,01H
         CNT  EQU       $-DATE
           E  DB        CNT DUP(?)
        DATA  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA
      START:  MOV       AX,DATA
              MOV       DS,AX
              MOV       SI,OFFSET DATE
              MOV       DI,OFFSET E
              MOV       CX,CNT
         L1:  MOV       AX,[SI]
              MOV       BX,AX
              SAR       AX,1
              JB        NEXT1
              MOV       [DI],BX
              INC       DI
      NEXT1:  INC       SI
              LOOP      L1
              MOV       SI,OFFSET E
              MOV       CX,LENGTH E
              MOV       AX,[SI]
         L2:  CMP       AX,[SI+1]
              JB        NEXT2
              MOV       AX,[SI+1]
      NEXT2:  INC       SI
              LOOP      L2
 ;-------------------------------------------
              MOV       BX,AX
              MOV       CH,4
              MOV       CL,4
      AGAIN:  ROL       BX,CL
              MOV       AL,BL
              ADD       AL,0FH
              CMP       AL,9
              JLE       NEXT
              ADD       AL,7
       NEXT:  ADD       AL,30H
              MOV       DL,AL
              MOV       AH,2
              INT       21H
              DEC       CH
              JNZ       AGAIN
 ;--------------------------------------------

              MOV       AH,4CH
              INT       21H
        CODE  ENDS
              END       START

回复列表 (共1个回复)

沙发

此句
    ADD       AL,0FH

也许应该是
    AND       AL,0FH

我来回复

您尚未登录,请登录后再回复。点此登录或注册