Ensamblaje: clasificación de burbujas para clasificar la cadena

Estoy escribiendo un programa en asamblea usando tasm. Mi tarea es escribir un programa que utilizará el método de burbuja para ordenar la cadena ingresada alfabéticamente. Ex. si ingresas "hola" debería escribir "ehllo". He escrito el ruego para ingresar una cadena y ordenarla (creo que funciona bien hasta el final donde debería imprimir el resultado, pero al final solo escribe mi .data una vez y termina su trabajo) PD lo siento por mal Inglés

.model small
.stack 100h

.data
request     db 'This program is using bubblesort to get alphabetical order of your enterd string', 0Dh, 0Ah, 'Enter your string:', 0Dh, 0Ah, '
result      db 0Dh, 0Ah, 'Result:', 0Dh, 0Ah, '
buffer      db 100, ?, 100 dup (0)

.code

start:
MOV ax, @data                   
MOV ds, ax                      


MOV ah, 09h
MOV dx, offset request
int 21h


MOV dx, offset buffer           
MOV ah, 0Ah                     
INT 21h                         


MOV si, offset buffer           
INC si                          
MOV bh, [si]                    
INC si                          

sort:
mov cx, [si] 
mov bx, [si]     

nextelement:
mov ax, [bx+si]     
cmp ax, [bx+si+1]   
jge noswap          
xchg ax, [bx+si+1]
mov ax, [bx+si]

noswap:
inc si              
cmp cx, si          
jl nextelement      
loop nextelement 



MOV ah, 09h
MOV dx, offset result
int 21h


char:
LODSB                           
MOV ah, 2                       
MOV dl, al                      
INT 21h                        

DEC bh                          
JZ ending                       
JMP char                        


ending:
MOV ax, 4c00h               
INT 21h                         

end start

Respuestas a la pregunta(1)

Su respuesta a la pregunta