AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Assembler: Flags bei CMP

Ein Thema von Niels · begonnen am 8. Dez 2003 · letzter Beitrag vom 8. Dez 2003
Antwort Antwort
Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#1

Assembler: Flags bei CMP

  Alt 8. Dez 2003, 18:36
Hoi,

ich hab jetzt angefangen Assembler zu lernen. Da ich leider noch kein Buch hab, kann ich nur Tuts durcharbeiten und im Netz suchen. Mein Problem besteht darin, dass ich auf allen möglichen Seiten war um rauszufinden Welche Flags bei welchem Ergebnis wie gesetzt werden.

Herausgefunden hab ich schon, dass das Overflow, Sign, Zero, Aux.carry, Parity und Carray Flag (also praktisch alle Status Flags) verändert werden. Jetzt würde mich interessieren, was mit ihnen passiert um dann dementsprechend JUMPs einzusetzen.

MfG Niels
  Mit Zitat antworten Zitat
Mikko

Registriert seit: 23. Jan 2003
Ort: Baden
65 Beiträge
 
#2

Re: Assembler: Flags bei CMP

  Alt 8. Dez 2003, 19:14
Schau mal auf http://win32asm.cjb.net/. Da gibts einiges zu Assembler (siehe auch MessageBord).
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#3

Re: Assembler: Flags bei CMP

  Alt 8. Dez 2003, 19:28
Mein Assembler-Buch sagt dazu:

Code:
Befehl  |  geprüfte Statusflags
-----------------------------------
JA/JBNE |  CF=0 und ZF=0
JAE/JNB |  CF=0
JB/JNAE |  CF=1
JBE/JNA |  FC=1 oder ZF=1
JE/JZ   |  ZF=!
JG/JNLE |  ZF=0
JGE/JNL |  SF gleich OF
JL/JNGE |  SF ungleich OF
JLE/JNG |  ZF=1
JNE/JNZ |  ZF=0
JC      |  CF=1
JNC     |  CF=0
JNP/JPO |  PF=0
JNS     |  SF=0
JO      |  OF=1
JP/JPE  |  PF=1
Und außerdem:

Zitat von Reiner Backer hat in 'Programmiersprache Assembler':
Das Carry Flag wird gesetzt, wenn nach einer Addition oder Subtraktion der Wertebereich in einem der Register überschritten ist. [...] Findet ein Übertrag statt, so steht das Carry Flag auf 1.

[...]

Das Parity Flag dient zur Fehlerprüfung bei der Datenübertragung über die serielle Schnittstelle. Das Parity Flag ist auf 1, wenn das Ergebnis der beiden Prüfsummen eine gerade Anzahl an Bytes im Low-Byte ergibt. Bei einer ungeraden Anzahl von bits wird das Parity Flag auf 0 gesetzt.

[...]

Das Auxiliary Flag [...] is dem Carry Flag sehr ähnlich. Zum Unterschied wird mit dem hilfsübertragsflag ein Übertrag von Bit 3 nach Bit 4 bei einer 8-Bit-Operation angezeigt. Bei einem Übertrag staht AF auf 1.

[...]

Das Zero Flag zeigt nach einer Operation an, ob das Ergebnis 0 ist oder nicht.Beim ergebnis 0 steht das Zero Flag auf 1.

[...]

Nach einem arithmetischen oder logischen Befhel befindet sich das höchstwertige Bit des Ergebnisses im Sign Flag. Das Sign Flag zeigt somit an, ob das Ergebnis positiv oder negativ ist. Ist das Ergebnis negativ, so wird das Sign Flag auf 1 gesetzt.

[...]

Wenn bei einer arithmetischen Operation ein Übertrag auf das höchstwertige Bit erfolgt, wird das Overflow Flag auf 1 gesetzt.
AF ist also nur für BCD-Arithmetik interessant und OF nur für Zahlen mit Vorzeichen wichtig.
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#4

Re: Assembler: Flags bei CMP

  Alt 8. Dez 2003, 19:53
Danke...funktioniert jetzt alles

MfG Niels
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz