Assembler inkrementieren eines Register?

2 Antworten

=> Was soll das bedeuten, das man ein 32-bit register hier EBX um 1 erhöht?
32-bit sind 4 Byte. D. h. dort stehen vier Zeichen oder vier Zahlen, jede im Bereich 2^7 ist 0 bis 255.

Die 4 Byte eines Registers werden üblicherweise als eine einzige 32-Bit-Zahl betrachtet.

Der INC-Befehl erhöht diese 32-Bit-Zahl um 1.

inc [count]
=> Hier erhöhe ich den Inhalt/Wert der Variablen count um 1.

Kann man so sagen. Allerdings nur dann, wenn man versteht, was man mit "Variable" genau meint.

count zeigt auf eine bestimmte Speicheradresse (und enthält auch die Wortlänge; 1, 2 oder 4 Byte). Die Anweisung inc [count] erhöht den an dieser Speicheradresse gespeicherten Wert der gegebenen Wortlänge um 1.

EBX (beim 386er) ist ein 32-Bit-Register. Lasse Dich bitte nicht dazu verleiten, das in 4 Byte zu je 8 Bit zu zerlegen. Es sind wirklich 32 Bit für eine Zahl.

Bei "count" ist nicht klar, ob es sich um 8, 16 oder 32 Bit handelt. Du hast auf jeden Fall Recht, aus 5 wird 6.

RedDevil1982 
Fragesteller
 18.04.2023, 21:17

 "Lasse Dich bitte nicht dazu verleiten, das in 4 Byte zu je 8 Bit zu zerlegen. Es sind wirklich 32 Bit für eine Zahl."

D. h. dann aber auch, dass ich in einem 32-Bit Register nur "eine" Zahl speichern/ablegen kann.

Was soll das jetzt bedeuten, dass man ein 32-Bit Register inkrementiert, um 1 erhöht? Die "eine" 32-Bit Zahl die in dem Register gespeichert ist, wird um 1 erhöht?

0
tunik123  18.04.2023, 21:20
@RedDevil1982

Ja, das Register speichert nur eine Zahl (und nicht etwa 4). Und die wird um 1 erhöht.

1