Assembler-Problem: mov [Register],Wert
Übersicht Sonstiges Smalltalk
PowerProgrammerBetreff: Assembler-Problem: mov [Register],Wert |
Sa, Feb 03, 2007 19:42 Antworten mit Zitat |
|
---|---|---|
Ja hallo erstmal, ich bin PowerProgrammer.
Ach nee, das wisst ihr ja schon. Es geht um ein Assembler-Problem: Ich habe einen Adresse irgendwie zusammengebastelt, die liegt nun im Register DX. Jetzt will ich den Speicher an dieser Stelle mit dem Wert aus AL dareinschieben, ich weiß aber nicht, wie das klappt. So geht es jedenfalls nicht: Code: [AUSKLAPPEN] mov [dx],al
Das wundert mich auch irgendwie nicht, aber wie kann ich das realisieren? Ach ja, kennt der NASM den Befehl DUP eigentlich net? Mfg PowerProgrammer P.S. Ich weiß, dass das hier kein Forum für Assembler ist, also verkneift euch bitte diese Kommentare, danke |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
Rone |
Sa, Feb 03, 2007 20:49 Antworten mit Zitat |
|
---|---|---|
moin,
wenn der Rest stimmt, sollte das eigendlich so gehen. Hier ist mal ein kleines Beispiel für indirekte Adressierung: Code: [AUSKLAPPEN] .STACK 256
.DATA LISTE DB 100 DUB(".") .CODE START: MOV AX,@DATA ; Initialisierung des MOV DS,AX ; Datensegments MOV BX, OFFSET LISTE ; Anfangsadresse der Liste nach BX MOV AL,0 ; AL mit 0 initialiseren BLA: MOV [BX],AL ; Inhalt von AL an den Speicherplatz dessen Adresse in BX steht INC BX INC AL CMP AL,99 ; Wenn AL=99... JE ENDE ; ... dann beenden JMP BLA ; ... ansonsten weiter Liste füllen ENDE: MSDOS ENDSTART Hoffe das geht auch so...habe nämlich nur mal vor Jahren den 6502 und den 8085 in Assembler programmiert...auf einem 'modernen' PC brauchte ich das bis jetzt zum Glück nie mfg |
||
PowerProgrammer |
Sa, Feb 03, 2007 23:15 Antworten mit Zitat |
|
---|---|---|
Dankeschön
Leider klappt das nicht: Code: [AUSKLAPPEN] MOV [BX],AL
Das ist mein Problemkind. Wenn ich die Klammern weglasse, ist das ja unsinn, wenn ich sie aber dran habe, will der die Adresse des Registers BX, die es natürlich nicht gibt (Register hat ne Adresse?!?!), mit AL befüllen. Das gibt nen Fehler: Invalid effective adress Vielleicht sollte ich auch sagen, dass ich den NASM nutze. Hat noch jemand ne Idee? |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
hecticSieger des IS Talentwettbewerb 2006 |
Sa, Feb 03, 2007 23:32 Antworten mit Zitat |
|
---|---|---|
Kannst du nicht mit einer AND-Operation aus AL einen AX -Wert zu machen und dann zu DX inzufügen?
AL=Wert XMaske=0000000011111111 AX=AL AND XMaske [/code] |
||
PlasmaBetreff: hmm |
So, Feb 04, 2007 0:57 Antworten mit Zitat |
|
---|---|---|
es wird der inhalt der durch das bx register bezeichneten adresse mit al überladen
soviel zur adresse klappt das ?? ! mov [edx],eax |
||
PowerProgrammer |
So, Feb 04, 2007 10:35 Antworten mit Zitat |
|
---|---|---|
Danke, das war mein Fehler.
Mit DX ging es nicht, da dachte ich, die Register sind alle recht gleich, mit BX ging es allerdings. Ich habe mich mal bei LowLevel erkundigt. Danke für eure Hilfe |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
Übersicht Sonstiges Smalltalk
Powered by phpBB © 2001 - 2006, phpBB Group