Sortowanie b

Potrzebujesz pomocy z C, C++, perl, python, itp.
kornicameister
Posty: 36
Rejestracja: 27 września 2010, 16:54

Sortowanie bąbelkowe w asemblerze

Post autor: kornicameister »

Kod: Zaznacz cały

;program do metody babelkowej
 
.MODEL SMALL
.DATA
 
	t DB      01h, 02h, 00h, 10h, 12h, 33h,5h, 09h, 11h, 08h, 0Ah, 00h
	t_size	 EQU 	11 			        ; dlugosc tablicy
	again_s	db 		0		; przyjmie 1 jesli byla zamiana
.CODE
s:
	mov ax,@DATA
	mov ds,ax	
	;buble sort
prepare:
	mov bx, OFFSET t 		
again:
	mov again_s,0			
	xor si,si				
nextElement:
	mov ah,[bx+si]			
	mov al,[bx+si+1]
	cmp ah,al				
	jbe	noSwap				
	mov [bx+si],al
	mov [bx+si+1],ah
	mov again_s,1				
noSwap:
	inc si					
	cmp si,t_size			
	jl  nextElement
 
	cmp again_s,1
	je	again
 
	mov ax,4c00h
	int 21h
.STACK 100H
end s
Napisałem program sortujący bąbelkowo, generalnie drugi w swojej historii.
Program sortuje, kończy się kodem 0, po analizie w turbo debuggerze wykazuje znamiona poprawności, ale nie jestem do końca pewien owej poprawności.

Jeśli ktoś ma jakieś doświadczenie z assemblerem, byłbym wdzięczny za rzucenie okiem i ewentualne przydatne uwagi.

Użyte oprogramowanie: tasm, td, tlink wszystko w wersji 16b, uruchamiana pod kontrolą 32b wirtualizowanego systemu Windows XP.
ODPOWIEDZ