1

Assembly Programm Frage

Frage von Apfelkiller Apfelkiller

Hi Leute. Ich wollte mal Fragen, was der Befehl "mov ah, 4ch" in Assembly bedeutet. Oder was der mir bringt. Danke im Vorraus

Fragen zu gleichen Themen finden

Antworten (5)

  • 2
    Hilfreichste Antwort ausgezeichnet vom Fragesteller
    Antwort von geri3d geri3d

    für meine 15 Punkte :-)

    Befehl: MOV Ziel,Quelle (MOVe)
    Übertrage/Kopiere
    
    Flags bleiben unverändert
    
    Beschreibung:
    Der MOV-Befehl kopiert den Inhalt des Quelloperanden in den Zieloperanden. Beide Operanden müssen vom gleichen Typ sein (Byte,Byte / Word,Word). Als Zieloperand kann jedes Register oder eine Speichervariable angegeben werden. Der Quelloperand kann zusätzlich aus einem Direktwert bestehen.
    
    Beispiel:
    mov ax,2000 ;AX = 2000
    mov ch,250  ;CH = 250
    mov ax,bx   ;AX = BX
    mov cx,Laenge   ;CX = Laenge
    
    Zeitbedarf: 2 Takte bei MOV Reg,Reg  (8 Bit/16 Bit)
                4 Takte bei MOV Reg,Wert (8 Bit/16 Bit)
                8 Takte bei MOV Reg,Mem  (8 Bit/16 Bit)
                9 Takte bei MOV Mem,Reg  (8 Bit/16 Bit)
               10 Takte bei MOV Mem,Wert (8 Bit/16 Bit)
    
    Kommentar von Apfelkiller ApfelkillerApfelkiller

    Danke, war schonmal wirklich hilfreich. Gibt auch höchstwahrscheinlich beste Antwort. Aber eine Frage hätt ich noch: Bei den Beispielen, die du genannt hast. Kann ich da statt "ax" auch "asdf" nehmen oder so? Und kann man wörter nur mit cx speichern???

    Kommentar von geri3d geri3dgeri3d

    Sorry, in Assembler kenn ich mich nur ganz rudimentär aus. Du meinst ob der Quelloperand auch ein Label sein kann oder so.

    Kommentar von Apfelkiller ApfelkillerApfelkiller

    genau. Ob das "cx" sein muss, oder ob ich auch unter "ax" einen Text speichern kann.

  • 1
    Antwort von supernicky supernicky

    Hallo,

    dieser Wert wird unter DOS benutzt zum beenden eines Programmes. AL musst aber auf NULL stehen.

    mov ax, 4c00h ;ist das gleiche wie mov ah, 4ch int 21h

    Da ax nur ein Word-Register ist, kannst du nur zwei Buchstaben speichern. Ein Buchstabe ist ein Byte groß.

    wenn du z.B. mov bx, offset string1 schreibst, speicherst du die Adresse an der string1 liegt. Mit jeder Erhöhung von bx (inc bx) kommst du zum nächsten Buchstaben. Adressen von Strings speichert man üblicherweise in den Registern DI und SI (Quell- und Zielindex).

    Gruß, Nicky

  • 0
    Antwort von Roadrunner2 Roadrunner2

    Das bedeutet, dass das obere Byte des AX-Registers mit dem Wert 0x4C initialisiert wird. Das bedeutet dann für das ganze AX-Register den Wert 0x4C00.

    Dieser Wert kann natürlich zufällig sein, aber sehr häufig wird dieser Wert dazu verwendet, mittels des DOS-Interrupts 0x21 ein Programm zu beenden, dass in der Konsole abläuft:

    mov ah, 0x4C ;Das ist das gleiche wie "mov ax, 4C00h".
    int 21h ;Hier könnte auch stehen: "int 0x21".
    
    Kommentar von Apfelkiller ApfelkillerApfelkiller

    danke

  • 0
    Antwort von Furunkel123 Furunkel123

    Schreibe in den Akkumulator den wert 4C

  • 0
    Antwort von blackboxV blackboxV

    lange her, muss aus einem programmteil sein, denke laden des registers AH mit dem wert 4C hex

    Kommentar von blackboxV blackboxV

    ja in den überall vefügbaren akku etwas laden (4c hex)

Diese Frage

Verwandte Fragen

Noch nicht den richtigen Rat gefunden?

Einfach und schnell viele hilfreiche Ratschläge von Deutschlands aktivster Ratgeber-Community erhalten!

Einfach und schnell einen Tipp erstellen und Ihren guten Rat mit anderen teilen!

Einfach und schnell ein Video hochladen und anschaulichen Rat an alle geben!

Die unter gutefrage.net angebotenen Dienste und Ratgeber Inhalte werden nicht geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Rechtliche Hinweise finden Sie hier.