Grundlagen - Einfach aber dringend ! :)
-
Hallo,
ich schreibe morgen eine Klausur und bin mir bei meinen Lösungen der Musterklausur nicht sicher.
Wäre nett wenn einer von euch "Freaks" (), sich die mal anschauen könnte.
Ist wirklich nicht viel.
Vielen Dank schonmal!Aufgabe 3 (30 Punkte)
Gegeben sei folgendes Programm:
org 0x400
MAIN
movlw .200
movwf 0x3
movlb 2
incf WREB,W
movwf 0x54,1
movwf 0x0023.1 (6 Punkte) Geben Sie für jede Zeile des Programms die Adresse im Speicher
an!
3.2 (5 Punkte) Erläutern Sie jede Zeile des Programms (ausführlich)!
3.3 (8 Punkte) Geben Sie für jede Zeile des Programms den Inhalt des W-Registers
an!
3.4 (10Punkte) Vor dem Start des Programms wurde der gesamte Datenspeicher auf 0
gesetzt. Geben Sie die Adresse und den Inhalt der Stellen im
Datenspeicher an, die durch das Programm verändert wurden! MIT
BEGRÜNDUNG!Aufgabe 4 (30 Punkte)
Gegeben sei folgendes Programm:
org 0x100
movlw .2
movwf Count
nop
decfsz Count,F
bra xxxDie Zeile bra xxx lautet im Programmspeicher 0xD7FC
4.1 (4 Punkte) Erläutern Sie die erste Zeile des Programms (org 0x100)
4.2 (12Punkte) Wohin verzeigt der Branch-Befehl? Leiten Sie die Zieladresse
anhand einer Rechnung her!
(Die Punktzahl wird nur erreicht, wenn die Rechnung durchgeführt
wird; Achten Sie auf den Hinweis weiter unten.)
4.3 (10Punkte) Was führt das Programm aus?
4.4 (4 Punkte) Schreiben Sie das Programm neu, so dass sofort erkennbar wird,
wohin der bra-Befehl verzeigt!Hinweis:
--------
BRA N 1101 0nnn nnnn nnnnGOTO K 1110 1111 kkkk kkkk
1111 kkkk kkkk kkkk
-
ich bin mir auch nicht so sicher, ob deine lösung so richtig ist, vor allem find ich deine lösung nicht, weshalb ich sie nur sehr grob kommentieren kann...
-
Hallo,
hehe,ok
3.1 hier weiss ich nicht warum manche Befehle 1,2 oder 3 "Speicher" benötigen
Bsp:0000 MOV AX,1EA7
0003 MOV DS,AX
0005 CALL 000C
0008 MOV AH,4C
000A INT 213.2 kann ich
3.3 auch
3.4 weiss nicht wie das genau geht4.1 ab da liegt der code im speicher
4.2 da habe ich 0xD7FC in Dezimal 55292 umgerechnet und dann in
dual '0011 1111 1110 1011' und dann wusste ich nicht mehr weiter
4.3 kann ich
4.4 geht wegen 4.2 nichtDanke schonmal
-
0xd7fc ist nicht 0011 1111 1110 1011b
sondern 1101 0111 1111 1100bGugst du mal hier http://www.sprut.de/electronic/pic/grund/grund.htm
-
Hallo,
wenn ich den Hinweis:
BRA N 1101 0nnn nnnn nnnn
GOTO K 1110 1111 kkkk kkkk
1111 kkkk kkkk kkkkhole,dann also:
xxxx x111 1111 1100 = 2044Dez oder FFCHex
Habe ich das so richtig verstanden ?
Wo springt der dann in Aufgabe 4 hin ?
-
Den Befehl habe ich so garnicht gefunden.
Ich vermute es ist ein Sprung relativ zu jetzigen Adresse.
Das würde wohl Sinn machen.
-
les dir bitte die aufgabenstellung weiteroben durch.danke
-
bubka schrieb:
xxxx x111 1111 1100 = 2044Dez oder FFCHex
Wo springt der dann in Aufgabe 4 hin ?könnte auch -4 sein oder sowas
-
überlauf oder muss ich das nicht verstehen ?
oder -4 nach oben im Programmspeicher ?
-
Jetzt kann ich nur auf ein Wunder hoffen
-
-
dich
Ich hätte gerne gewusst womit der mit der 2024 springt.
Also in dem gegebenen Programm.0x100 movlw .2
..
..
..
bra 0xFFC -> wohin des Weges ?
-
Jetzt kann ich nur auf ein Wunder hoffen
Das Glück bevorzugt den der Vorbereitet ist.
-
ich hatte eigentlich mit dem wunder gemeint das einer
den post liest der ahnung hat
-
Gugst du hier :
http://www.sprut.de/index.htm
-
danke habe ich schon gegugt
-
Wenn das stimmt das
BRA FFC
ein relativer Sprung ist dann lautet der in Dezimal
BRA -4
->Ein Sprung um 4 Byte zurück.
Aber vom Aktuellen Programm Counter
->
z.B.0000 Irgendwas 2 Bytes
0002 Irgendwas 2 Bytes
0004 BRA -4 2 Bytes
0006 Irgendwas 2 BytesNach dem lesen des Befehls BRA -4 ist der PC gleich 0006 !!
->
Neuer PC =2
-
cool danke!
jetzt bräuchte ich nur noch die Aufgabe 3.Wie das im Programmspeicher
aussieht...
-
-
org 0x400
MAIN
movlw .200
movwf 0x3
movlb 2
incf WREB,W
movwf 0x54,1
movwf 0x0023.1 (6 Punkte) Geben Sie für jede Zeile des Programms die Adresse im Speicher
an!3.4 (10Punkte) Vor dem Start des Programms wurde der gesamte Datenspeicher auf 0
gesetzt. Geben Sie die Adresse und den Inhalt der Stellen im
Datenspeicher an, die durch das Programm verändert wurden! MIT
BEGRÜNDUNG!Ich verstehe jetzt nicht wieso z.B. der MOV Befehl einmal
2 und einmal 3 (Einheit? Byte ? Bit?) braucht0000 MOV AX,1EA7
0003 MOV DS,AX
0005 CALL 000C
0008 MOV AH,4C
000A INT 21