.MODEL SMALL .STACK .DATA VETT DW 10,9,8,7,6,5,4,3,2,1 .CODE SCAMBIO MACRO MOV [SI], BX MOV [SI]+2, AX ;SCAMBIO I VALORI ENDM .STARTUP LEA SI, VETT ;INIZIO DEL VETTORE MOV CX, 9h CICLO1: PUSH CX ;SALVO CX PUSH SI ;SALVO SI CICLO2: MOV AX, [SI] MOV BX, [SI]+2 ;CARICO I DUE VALORI CMP AX, BX JNG CONTINUA ;SE AX>BX CONTINUO SE NO SALTO SCAMBIO CONTINUA: ADD SI, 2 ;MI SPOSTO IN AVANTI DI UN ELEMENTO LOOP CICLO2 POP SI ;RICARICO SI POP CX ;RICARICO CX LOOP CICLO1 .EXIT END