数组在装配中排序 [英] Array Sorting IN Assembly

查看:111
本文介绍了数组在装配中排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好!



i我试图按汇编语言按顺序对数组进行排序,但我还有两个错误

1:**错误** Array123.asm(12)相对超出范围007Fh字节




2:**错误** Array123.asm(119)相对超出范围0080h字节




关于循环语句的两个错误请帮助我,如果任何人解决这个问题查询。



Hello Everyone!

i am Trying to Sort The Array In Descending Order In Assembly Language But i Got Still Two Error
1:**Error** Array123.asm(12) Relative jump out of range by 007Fh bytes


2:**Error** Array123.asm(119) Relative jump out of range by 0080h bytes


Both Error About the Loop Statement Please Help Me If Any One Solve This Query.

.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

推荐答案

您有两种选择:

1.使所有代码都使用远指针(这意味着编译器将使用word / dword进行地址计算)

You have two options:
1. Make all your code use far pointers (it means compiler will use word/dword for address computation)
Main Proc FAR



2.仅使循环使用远指针


2. Make only the loop use far pointers

jcxz FAR Comp


这篇关于数组在装配中排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆