Hi Leute,
ich hätte ein paar Fragen für meine Prüfungsvorbereitung. Zum einen
Multiplikation. Nehme folgenden Code an:
1 | MOV A, #05h
|
2 | MOV B, #16h
|
3 | MUL A B
|
Dabei werden die Werte 5d aus A und 22d aus B Multipliziert = 110d =
6E.
Wo steht dann das Ergebnis drin? Also wo das Lowbyte, Highbyte und wo
würde dann ein Midbyte stehen, wäre die Rechnug z.B. #05h * #FFh?
2. Frage: Wie funktioniert Division? Ich nehme an, es ist alles ok wenn
A den Wert #08h und B #02h beinhalten würde. Dann würde, wenn ich es
richtig verstanden habe, beim Befehl
in A #00h und in B #04h stehen. Doch wie funktioniert das alles bei
ungeraden Zahlen? Wird da ab 0,5 aufgerundet?
3. Frage: Der 8051 besitzt das TMOD Register, dieses die Flags "Gate" /
"C/T(Nicht)". Wofür sind die? Google bringt mit das Ergebnis, dass wenn
Gate gesetzt ist, der jeweilige Timer nur läuft wenn INT1 high, also
gesetzt ist. Kann mir das jemand näher erklären?
C/T(Nicht) Bringt: When this bit is set the timer will count events on
T1 (P3.5). When this bit is clear the timer will be incremented every
machine cycle. Diesen Satz verstehe ich auch nicht richtig; Welche
"events" wird der Timer zählen?
Hoffe, ihr könnt mir mit meinen Fragen helfen
Grüße
Mike