Ich schreibe ein Programm in Assembly mit tasm. Meine Aufgabe besteht darin, ein Programm zu schreiben, das die Blasensortierung verwendet, um die eingegebene Zeichenfolge alphabetisch zu sortieren. Ex. Wenn Sie "Hallo" eingeben, sollte "ehlo" geschrieben werden. Ich habe das Betteln geschrieben, um in die Zeichenkette zu kommen und sie zu sortieren (ich denke, es funktioniert bis zum Ende, wo es das Ergebnis ausdrucken soll, aber am Ende schreibt es einfach meine .data und die fertig ist seine Arbeit) PS sorry für schlecht deutschAssembly - Blasensortierung zum Sortieren von Strings
.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
Beachten Sie, dass das BH-Register die oberen 8 Bits mit bx teilt, also wenn Sie letztere laden, das Formular Er wird auch überschrieben. –
Okey ich werde dies in Zukunft –