Zitat von
Alex_ITA01:
ADD:
klar sagt der Name schon das addiert eben zwei register miteinander aber irgendwie weiß ich nicht mehr recht wo der ganzzahlige anteil und der rest hinfällt (lässt sich aber einfach per debugger herausfinden)
ich kann dir ja gerne mal die liste mitbringen wenn du sie magst
hoffe das hier oben reicht erstmal ein stück für dich
mfg alex
bei Add wird zum 1. Register der Inhalt des Registers addiert, welches beim add-Befehl an 2. Stelle angegeben wird. Der Überschlag wird ins entsprechnde Gegen-Register gelegt. AX und DX bilden ein sogenanntes Registerpaar. CX und DX bilden auch eins, wenn ich mich recht entsinne.
Bsp:
mov ax, 0fffeh
mov bx, 3
add ax, bx
jo @@Overflow
;hier irgendwas machen, wenn es kein overflow gab
@@overflow:
;hier was machen, weil es den overflow gab
Danach steht in ax der wert 1 und in DX auch. Hört sich verwirrend, ist es aber ned. Testen kannst Du, ob es ein Überschlag gab, indem Du Dirdie Flags anschaust. Da Gibt es nämlich das OF (Overflow-Flag). Das wird dann gesetzt, wenn die letzte Operation einen Überlauf ergab. Bedingt springen kannst Du demnach mit dem Befehl "jo". Der Gegenbefehl dazu ist "jno" (Jump if No Overflow).
Bei mul sieht man das mit dem Overflow besonders gut.
Bsp.:
mov bx, 5
mov ax, 0ffffh
mul bx
in DX steht danach, wieoft AX einen overflow hatte.
ansonsten mußt Du insgesamt präzisere Fragen dazu stellen.
LG, MyRealName