.386
DATA SEGMENT
VALUE DW 12H,5678H,23H,14H,782H
COUNT EQU ($-VALUE)/2
DATA ENDS
STACKS SEGMENT STACK
DB 256 DUP(?)
STACKS ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA,SS:STACKS
BEGIN: MOV CX,COUNT
MOV SI,0
MOV BX,VALUE
LOOP1: MOV DI,CX
LOOP2: MOV EAX,[BX][SI]
MOV EDX,[BX][SI+2]
ADD SI,2
CMP EAX,EDX
JB CHANGE
JMP NEXT
CHANGE: XCHG EAX,[BX][SI+2]
MOV [BX][SI],EAX
NEXT: DEC DI
JNE LOOP2
LOOP LOOP1
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN