Frage zu Quellcode



  • Ich habe von jemanden anderen folgenden Quellcode bekommen:

    .MODEL TINY ; sehr kleines Speichermodell
    .CODE ; bezeichnet den Anfangscode des Segmentes
    IDEAL
    ORG 100H ; legt die aktuelle Position im Aktuellen Speichersegment fest

    PROGRAMM:
    ;-------------------------------------------------------------------------------
    START:

    in al , 00 ; Lese Schaltereinstellung nach al ein
    and ax , 00001111b ; logische UND -Verknuepfung
    mov bx , offset ZAHL ; Setze einen Zeiger auf Zahl in das BX-Register
    add bx , ax ; addiert den Wert von ax (also auch al) auf bx
    mov al , [bx] ; Schiebt den Zeiger von bx (16bit) in das al
    out 90h, al ; Gibt den Inhalt vom Zeiger auf Zahl in al auf
    ; der 7-Segment-Anzeige aus
    jmp START ; Springe wieder zur Marke START

    ZAHL db 00111111b ; gibt eine 0 auf die 7-Segmentanzeige
    db 00000110b ; gibt eine 1 auf die 7-Segmentanzeige
    db 01011011b ; gibt eine 2 auf die 7-Segmentanzeige
    db 01001111b ; gibt eine 3 auf die 7-Segmentanzeige
    db 01100110b ; gibt eine 4 auf die 7-Segmentanzeige
    db 01101101b ; gibt eine 5 auf die 7-Segmentanzeige
    db 01111101b ; gibt eine 6 auf die 7-Segmentanzeige
    db 00000111b ; gibt eine 7 auf die 7-Segmentanzeige
    db 01111111b ; gibt eine 8 auf die 7-Segmentanzeige
    db 01101111b ; gibt eine 9 auf die 7-Segmentanzeige
    db 01110111b ; gibt eine A auf die 7-Segmentanzeige
    db 01111100b ; gibt eine b auf die 7-Segmentanzeige
    db 00111001b ; gibt eine C auf die 7-Segmentanzeige
    db 01011110b ; gibt eine d auf die 7-Segmentanzeige
    db 01111001b ; gibt eine E auf die 7-Segmentanzeige
    db 01110001b ; gibt eine F auf die 7-Segmentanzeige

    END START

    ;--------------------------------------------------------------------------------------
    END PROGRAMM

    Meine Frage ist:

    Warum rutscht der Tabllenzeiger bei dem Befehl "add bx , ax" um eins nach unten?



  • Hi.

    Ich nehme mal an, dass mit dem Tabllenzeiger bx und mit "rutscht um eins nach unten" gemeint war, dass bx um eins vermindert wird (bx-1)?
    Wenn dem so ist, bist Du dir sicher, dass bx durch diesen Additions-Befehl um 1 vermindert wird? Welche Werte haben dabei ax und bx jeweils vor und nach der Addition?
    Ein paar mehr Informationen waeren da echt schon hilfreich, ein Blick auf den Code sagt mir nur, dass bx unter normalen Umstaenden durch diese Addition nicht um 1 vermindert werden kann. 😕


Anmelden zum Antworten