Arbeiten mit arrays assembler 8086
Definieren Sie ein array mit zehn 16-bit-Worten. Lesen Sie die Werte ein string, der keine Zeichen aus der Tastatur. Danach sollte der string umgewandelt werden, so dass es bleiben nur Elemente, sind Kleinbuchstaben (a
- z
).
Anschließend drucken Sie die Zeichenfolge auf dem Bildschirm und speichern Sie in das register CX
die Anzahl der Elemente der modifizierten Sequenz.
Dies ist mein code:
data segment
array dw 10 dup (?)
i db ?
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov i, 0d
mov bx, 0h
insert: ;inserting elements in array work only for db, but i need to work for dw
mov ah, 01h
int 21h
mov array [bx], al
inc bx
inc i
cmp i,4d
JNE insert
mov bx, 0h
mov cl, i
go: ; loop for finding numbers or same character who are not lowercase letters, deleting,
; and moving lowercase letters on their positions
mov ax, array[bx]
cmp ax, 97d
jl notchar
cmp ax, 97d
jg notchar
loop go
mov ax, 4c00h
int 21h
ends
end start
Mein problem ist, es funktioniert nicht richtig mit dw
. Kann mir keiner helfen?
- Google 's yo' Freund. Zuerst veröffentlichen Sie Ihren code.
- Ich poste meinen code in meiner Frage helfen Sie mir...bitte
- Was genau funktioniert nicht? Wie Sie wissen, funktioniert es nicht? Was meinst du mit es funktioniert nicht mit
dw
? - stackoverflow.com/help/how-to-ask
- wenn ich einfügen eines Zeichens von der Tastatur, weil dw ist 2bytes ich schreiben kann, in [bx] . diese Anweisung funktioniert nur für db ( mov array [bx], al ), ich will sparen dw in der Reihe, keine db, wenn ich definieren, array db 10 ist es ok, aber array dw 10 nicht funktioniert, emu8086 gibt mir ein Fehler
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt nichts, das steht in Ihrem Weg zu speichern ein Wort an Stelle eines byte in das array.
Den zweiten Teil von deinem Programm muss einige änderungen: