poradite mi se zacatecnickym prog?

tu mas kus zdrojaku :slight_smile: Nepsal jsi, co to po tom porovnani ma delat, tak jsem napsal 1 pruchod polem řadiciho algoritmu bublesort :wink: Pokud ten pruchod budes opakovat tak dlouho, dokud se behem pruchodu bude provadet zamena cisel, tak ti to setridi cely pole :wink: Az se behem pruchodu zadna zamena neprovede, je serazeno…

[code]$NOPAGING
; porovnavani peti cisel se znamenkem ulozenych ve vnitrni pameti
; vysledek do vnejsi pameti …

x0 EQU 2
x1 EQU 3
x2 EQU 1
x3 EQU 5
x4 EQU 6

z_pole DATA 30h ;promenna v RAM - obsahuje zacatek pole razenych cisel
k_pole DATA 31h ;konec pole
temp DATA 32h ;pomocna prom.

ORG 0h
sjmp start

start: mov z_pole, #40h ;rekneme, ze pole bude zacinat napriklad adresou 40h

mov r0, z_pole		;pole bude ulozeno od adresy 31h (nad registry a bit. oblast)
mov @r0, #x0		;nacteni cisel do RAM, cislo x0 nacteno na adresu 31h
inc r0
mov @r0, #x1
inc r0
mov @r0, #x2
inc r0
mov @r0, #x3
inc r0
mov @r0, #x4		;x4 na adr. 35h
mov k_pole, r0		;ulozit adresu konce pole



;jedina pouzitelna varianta CJNE: "CJNE A, direct_addres, jump_relativ_addres"
;cisla budu radit sestupne (od zacatku pole), nizsi adresa bude obsahovat vetsi cislo

;-----------------------------------------
;------ 1 pruchod polem ------------------
;-----------------------------------------
mov r0, z_pole
dalsi: mov a, r0
cjne a, k_pole, pokr1 ;kontrola, zda jiz nebylo projito cele pole
sjmp stop ;doslo se na konec, stop

pokr1: mov a, @r0 ;A <- 1. cislo
inc r0
mov temp, @r0 ;temp (30h) <- 2. cislo
cjne a, temp, pokr2 ;v C vysledek porovnani, pokracuje se nasledujicim radkem (pripadny skok je tamtez)
pokr2: jnc dalsi ;pokud je 1. cislo vetsi (na nizsi adrese), porovnej dasli 2 cisla

mov @r0, a		;jinak cisla prohodime, v A je mensi cislo a r0 miri na vyssi adresu (adresa
			;toho vetsiho cisla) tam to mensi zapisem.
dec r0			;presmerujem r0 zpatky na nizsi adresu
mov @r0, temp		;a zapisem vetsi cislo
inc r0			;vratime r0 zpatky o misto vys a jdem porovnavat dalsi 2 cisla
sjmp dalsi

;-----------------------------------------
;-----------------------------------------
;-----------------------------------------
stop: sjmp $

end[/code]