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