Сортировки массива на ассемблере
Привет всем!
я пытаюсь отсортировать массив в порядке убывания на языке ассемблера, но у меня все еще есть две ошибки
1:**ошибка** Array123.asm(12) относительный прыжок за пределы диапазона на 007Fh байт
2:**Ошибка** Array123.asm(119) относительный скачок из диапазона на 0080h байт
Обе ошибки в операторе цикла, пожалуйста, помогите мне, если кто-нибудь решит этот запрос.
.model small .stack 100h .data Array db 1,2,3,4,5,6,7,8,9 .code Main Proc mov ax,@data mov ds,ax ;Make Different Session mov cx,10 Again: jcxz Comp mov bl,Array cmp bl,Array+1 jl One One: mov bl,Array mov cl,Array+1 XCHG bl,cl mov Array,bl mov Array+1,cl mov bl,Array+1 cmp bl,Array+2 jl Two Two: mov bl,Array+1 mov cl,Array+2 XCHG bl,cl mov Array+1,bl mov Array+2,cl ;Threee mov bl,Array+2 cmp bl,Array+3 jl Three Three: mov bl,Array+2 mov cl,Array+3 XCHG bl,cl mov Array+2,bl mov Array+3,cl ;Fourr mov bl,Array+3 cmp bl,Array+4 jl Four Four: mov bl,Array+3 mov cl,Array+4 XCHG bl,cl mov Array+3,bl mov Array+4,cl ;Five mov bl,Array+4 cmp bl,Array+5 jl Five FIve: mov bl,Array+4 mov cl,Array+5 XCHG bl,cl mov Array+4,bl mov Array+5,cl ;Six mov bl,Array+5 cmp bl,Array+6 jl Six Six: mov bl,Array+5 mov cl,Array+6 XCHG bl,cl mov Array+5,bl mov Array+6,cl ;Seven mov bl,Array+6 cmp bl,Array+7 jl Seven Seven: mov bl,Array+6 mov cl,Array+7 XCHG bl,cl mov Array+6,bl mov Array+7,cl ;Eight mov bl,Array+7 cmp bl,Array+8 jl Eight Eight: mov bl,Array+7 mov cl,Array+8 XCHG bl,cl mov Array+7,bl mov Array+8,cl ;Ninth mov bl,Array+8 cmp bl,Array+9 jl Ninth Ninth: mov bl,Array+8 mov cl,Array+9 XCHG bl,cl mov Array+8,bl mov Array+9,cl Loop Again ;Display Session Comp: mov dl,Array add dl,48 mov ah,02 int 21h mov dl,Array+1 add dl,48 mov ah,02 int 21h mov dl,Array+2 add dl,48 mov ah,02 int 21h mov dl,Array+3 add dl,48 mov ah,02 int 21h mov dl,Array+4 add dl,48 mov ah,02 int 21h mov dl,Array+5 add dl,48 mov ah,02 int 21h mov dl,Array+6 add dl,48 mov ah,02 int 21h mov dl,Array+7 add dl,48 mov ah,02 int 21h mov dl,Array+8 add dl,48 mov ah,02 int 21h mov dl,Array+9 add dl,48 mov ah,02 int 21h mov ah,4ch int 21h Main Endp End Main
Tomas Takac
Я бы сказал, что вы прыгаете слишком далеко. Данная метка должна быть короткой (от -128 до +127 байт от инструкции, следующей за прыжком).