Prüfungsvorbereitung

Gast #3661468
Lesenswert?

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
1
DIV A B
 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
Moderator Persönliche Seite #3661670
Lesenswert?

Mike schrieb:

> Wo steht dann das Ergebnis drin?

Das steht im Handbuch deines Prozessors (den wir nicht kennen).

Es gibt da keinen "Standard".

> Doch wie funktioniert das alles bei ungeraden Zahlen?
> Wird da ab 0,5 aufgerundet?

Bei ganzzahliger Division wird immer implizit abgerundet.  Das ist
wie in der Grundstufe in der Schule, wenn du schriftlich dividierst
und dann aufhörst, wenn der ganzzahlige Teil erledigt ist; unter
dem Strich bleibt dann noch der Rest ("Modulus" genannt).

> 3. Frage: Der 8051 besitzt das TMOD Register, dieses die Flags "Gate" /
> "C/T(Nicht)". Wofür sind die?

Damit kenne ich mich nicht aus.
Moderator Persönliche Seite #3661795
Lesenswert?

(OK, nochmal einen Moment Zeit, das Englische da zu lesen.)

Mike schrieb:

> 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?

Die "Events" sind Flanken an T1.  Ob fallende oder steigende, ist aus
dem Zitat nicht ersichtlich.  Wenn das Bit also 1 ist, wird der Zähler
vom Eingang T1 getaktet (er arbeitet also als Zähler), wenn das Bit 0
ist, wird er vom internen Takt gesteuert (d. h., er arbeitet als Timer).

Damit ist auch der Name "C/¬T" klar: "counter, not timer".
#3662171
Lesenswert?

wenn es um den 8051 geht :

Mike schrieb:
> 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?

Das Ergebnis steht in A und B :
A = Lo-Byte
B = Hi-Byte

ein "Mid-Byte" gibt es nicht, das größte Ergebnis :
255*255 = 65025 = FE01h
(hat nur zwei Byte)


Mike schrieb:
> in A #00h und in B #04h stehen. Doch wie funktioniert das alles bei
> ungeraden Zahlen? Wird da ab 0,5 aufgerundet?

auch hier steht das Ergebnis in A und B :
A = Ergebnis (immer abgerundet)
B = Rest der Division

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren