求出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



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