Я пишу программу в сборке, используя tasm. Моя задача - написать программу, которая будет использовать сортировку пузырьков для сортировки введенной строки по алфавиту. Ex. если вы введете «привет», он должен написать «ehllo». Я написал письмо с просьбой ввести строку и отсортировать ее (я думаю, что она работает okey до конца, где она должна распечатывать результат, но в конце она просто пишет мою .data один раз и заканчивает ее работу) PS извините за плохое englishСборка - сортировка пузыря для сортировки строки
.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
Обратите внимание, что регистр bh разделяет верхние 8 бит на bx, поэтому, если вы загружаете последний, форма er также перезаписывается. –
Okey я буду иметь это в виду в будущем –