Einzelnen Beitrag anzeigen

Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
675 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Wie funzt der Assembler?

  Alt 20. Jan 2004, 14:16
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
  Mit Zitat antworten Zitat