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 festPROGRAMM:
;-------------------------------------------------------------------------------
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 STARTZAHL 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-SegmentanzeigeEND START
;--------------------------------------------------------------------------------------
END PROGRAMMMeine 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.