Assembly - пузырьковая сортировка для сортировки строк

Я пишу программу на ассемблере, используя tasm. Моя задача - написать программу, которая будет использовать сортировку по пузырькам для сортировки введенной строки по алфавиту. Ex. если вы введете «привет», следует написать «эхло». Я написал просьбу ввести строку и отсортировать ее (я думаю, что она работает хорошо до конца, где она должна распечатать результат, но в конце она просто однажды записывает мои .data и заканчивает свою работу) PS извините за плохой английский

.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

Ответы на вопрос(1)

Ваш ответ на вопрос