求出data爲首地址的100D字數組中的最小偶數,並把它存放在AX中,目前只能做出無符號數,有待修改

DATAS SEGMENT;此處輸入數據段代碼  
ARRAY DW 4,5,6,7,8,9,3,6,1,10,34,12,45,58,6,32,15,17,20,'$'
Z DB 100,10
DATAS ENDS

STACKS SEGMENT;此處輸入堆棧段代碼
  DW 100 DUP(?)
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX        ;此處輸入代碼段代碼
    LEA BX,ARRAY
    MOV DX,[BX]
    MOV AX,4         ;AX初始值設爲4
TEST1: MOV CX,DX    ;判斷是否是偶數
       RCR CX,1     ;帶進位循環右移一位
       JNC OUSHU    ;偶數跳轉
       JC CONTINUE  ;奇數跳轉
OUSHU:
        CMP AX,DX
        JL  CONTINUE  ;如果小於AX,則將AX和CX的值交換,比較完之後AX中始終是最小的偶數
        JNL JIAOHUAN ;較下一個數
JIAOHUAN:MOV AX,DX
         JMP CONTINUE      
CONTINUE:ADD BX,2
         MOV DX,[BX]
         CMP DX,24H    ;與結束符$比較,看是否結束
         JNZ TEST1     ;不相等跳轉到比較處
         JMP SHUCHU
SHUCHU:
        DIV Z
        PUSH AX 
        CMP AL,0
        JZ AA
        ADD AL,30H
        MOV DL,AL
        MOV AH,02H
        INT 21H
     AA:POP AX
        MOV AL,0
        ADD AH,30H
        MOV DL,AH
        MOV AH,02H
        INT 21H
       
      MOV AH,4CH
      INT 21H
CODES ENDS
    END START



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章