Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Gost
|
|
[Vrh] |
|
Shirohige Forumaš(ica)
Pridružen/a: 16. 11. 2012. (20:19:56) Postovi: (ED)16
Spol:
|
|
[Vrh] |
|
Gost
|
Postano: 13:18 sub, 25. 1. 2014 Naslov: |
|
|
[quote="Shirohige"][quote="Anonymous"]vježbe9, 2.zadatak
što točno ova linija koda radi?
MOVEM.L D0-D2/A0, -(A7)[/quote]
Stavlja sadržaje registara D0,D1,D2 i A0 na stog jer ti registri možda sadrže podatke koji će nam ponovno u glavnom programu trebati pa je potrebno napraviti "backup" kako bi te registre u funkciji mogli koristiti bez straha da smo prebrisali neki bitan podatak koji nismo smjeli.[/quote]
hvala na odgovoru, al jos uvijek mi nije bas jasno cemu to kad u glavnom programu nismo nista spremali u te registre :/
Shirohige (napisa): | Anonymous (napisa): | vježbe9, 2.zadatak
što točno ova linija koda radi?
MOVEM.L D0-D2/A0, -(A7) |
Stavlja sadržaje registara D0,D1,D2 i A0 na stog jer ti registri možda sadrže podatke koji će nam ponovno u glavnom programu trebati pa je potrebno napraviti "backup" kako bi te registre u funkciji mogli koristiti bez straha da smo prebrisali neki bitan podatak koji nismo smjeli. |
hvala na odgovoru, al jos uvijek mi nije bas jasno cemu to kad u glavnom programu nismo nista spremali u te registre
|
|
[Vrh] |
|
Shirohige Forumaš(ica)
Pridružen/a: 16. 11. 2012. (20:19:56) Postovi: (ED)16
Spol:
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
hendrix Forumaš(ica)
Pridružen/a: 03. 09. 2012. (15:59:06) Postovi: (92)16
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
Tom1 Forumaš(ica)
Pridružen/a: 03. 10. 2013. (20:43:41) Postovi: (8)16
|
|
[Vrh] |
|
nuclear Forumaš(ica)
Pridružen/a: 13. 11. 2011. (17:40:12) Postovi: (74)16
Spol:
|
Postano: 12:02 čet, 6. 11. 2014 Naslov: |
|
|
Može li mi netko objasniti što radi ovaj dio koda i zašto?
* Subroutine to display Carriage Return and Line Feed
newLine movem.l d0/a1,-(a7) push d0 & a1
move #14,d0 task number into D0
lea crlf,a1 address of string
trap #15 display return, linefeed
movem.l (a7)+,d0/a1 restore d0 & a1
rts return
Uzeto iz tutoriala1 od easy68k-a....
Može li mi netko objasniti što radi ovaj dio koda i zašto?
* Subroutine to display Carriage Return and Line Feed
newLine movem.l d0/a1,-(a7) push d0 & a1
move #14,d0 task number into D0
lea crlf,a1 address of string
trap #15 display return, linefeed
movem.l (a7)+,d0/a1 restore d0 & a1
rts return
Uzeto iz tutoriala1 od easy68k-a....
|
|
[Vrh] |
|
hendrix Forumaš(ica)
Pridružen/a: 03. 09. 2012. (15:59:06) Postovi: (92)16
|
Postano: 12:20 čet, 6. 11. 2014 Naslov: |
|
|
Jesi li sigurna da nisi preskocila velik dio gradiva? :D
Subroutineovi (neprecizno receno, to je imitacija funkcijâ kakve znas iz npr. C-a) se rade tek pretkraj semestra (i nisu potrebni za rjesavanje prakticnih zadataka).
Inace, [tt]A7[/tt] pokazuje na stack (user/supervisor, ovisno o nacinu rada; za ovo posljednje ne garantiram, proslo je solidnih 9 mjeseci otkad sam zadnji put upalio simulator :D) na koji spremas podatke i kasnije ih s njih ocitavas (na pocetku, odnosno kraju ovog fragmenta koda).
Prvo na njega spremimo vrijednosti iz [tt]D0[/tt] i [tt]A1[/tt].
U [tt]D0[/tt] je ubacen [tt]#14[/tt], [tt]A1[/tt] je pomocu [tt]LEA[/tt] naredbe (vidi Help) ubacena neka adresa, a [url=http://www.easy68k.com/QuickStart/TrapTasks.htm]ovdje[/url] mozes naci sto [tt]TRAP #15[/tt] radi ovisno o sadrzaju registra [tt]D0[/tt]; primijeti da je sadrzaj u [tt]A1[/tt] bitan kod dijela s [tt]#14[/tt].
U pretposljednjoj liniji vracamo sadrzaj registara [tt]D0[/tt] i [tt]A1[/tt] na prvobitno stanje (jer smo ih spremili na stack) i vracamo se u "main" dio programa.
Ovoliko mogu reci "po sjecanju", pa ako ti nesto znaci :)
Jesi li sigurna da nisi preskocila velik dio gradiva?
Subroutineovi (neprecizno receno, to je imitacija funkcijâ kakve znas iz npr. C-a) se rade tek pretkraj semestra (i nisu potrebni za rjesavanje prakticnih zadataka).
Inace, A7 pokazuje na stack (user/supervisor, ovisno o nacinu rada; za ovo posljednje ne garantiram, proslo je solidnih 9 mjeseci otkad sam zadnji put upalio simulator ) na koji spremas podatke i kasnije ih s njih ocitavas (na pocetku, odnosno kraju ovog fragmenta koda).
Prvo na njega spremimo vrijednosti iz D0 i A1.
U D0 je ubacen #14, A1 je pomocu LEA naredbe (vidi Help) ubacena neka adresa, a ovdje mozes naci sto TRAP #15 radi ovisno o sadrzaju registra D0; primijeti da je sadrzaj u A1 bitan kod dijela s #14.
U pretposljednjoj liniji vracamo sadrzaj registara D0 i A1 na prvobitno stanje (jer smo ih spremili na stack) i vracamo se u "main" dio programa.
Ovoliko mogu reci "po sjecanju", pa ako ti nesto znaci
|
|
[Vrh] |
|
nuclear Forumaš(ica)
Pridružen/a: 13. 11. 2011. (17:40:12) Postovi: (74)16
Spol:
|
Postano: 12:31 čet, 6. 11. 2014 Naslov: |
|
|
[quote="hendrix"]Jesi li sigurna da nisi preskocila velik dio gradiva? :D
...... [/quote]
Pa nisam sigurna, pošto mi nažalost (osobno) vježbe nisu bile najkorisnije jer nisam mogla pratiti (idu mi prebrzo i ne razumijem sve što se priča) pa sam odlučila proučiti HELP od easy68k-a pa vježbam sve što se ima za znati iz asemblera iz tutoriala...
Inače, koliko sam ja shvatila (nemoj zamjeriti :)) pa me ispravi ako je krivo:
pri prikazu texta: hello DC.B 'kajgod',$D,$A,0 -> $D, $A osigurava da se nakon ispisa prijeđe u novi red
a našla sam da isto to radi i: hello DC.B 'kajgod',0 ako stavimo za prikaz:
MOVE #13,D0
LEA hello,A1
TRAP #15
Tj, jel točno (bar meni tako radi u asembleru) da za novi red ne moram pisati to što mi izgleda ružno za što sam prvo pitala, nego je dovoljno da koristimo task 13 ili $D,$A?
Vrijedi li to (ako vrijedi) i za prikaz broja na D1? Jer ovo vidim da vrijedi samo za prikaz onoga na A1.....Hvala na trudu :)
hendrix (napisa): | Jesi li sigurna da nisi preskocila velik dio gradiva?
...... |
Pa nisam sigurna, pošto mi nažalost (osobno) vježbe nisu bile najkorisnije jer nisam mogla pratiti (idu mi prebrzo i ne razumijem sve što se priča) pa sam odlučila proučiti HELP od easy68k-a pa vježbam sve što se ima za znati iz asemblera iz tutoriala...
Inače, koliko sam ja shvatila (nemoj zamjeriti ) pa me ispravi ako je krivo:
pri prikazu texta: hello DC.B 'kajgod',$D,$A,0 → $D, $A osigurava da se nakon ispisa prijeđe u novi red
a našla sam da isto to radi i: hello DC.B 'kajgod',0 ako stavimo za prikaz:
MOVE #13,D0
LEA hello,A1
TRAP #15
Tj, jel točno (bar meni tako radi u asembleru) da za novi red ne moram pisati to što mi izgleda ružno za što sam prvo pitala, nego je dovoljno da koristimo task 13 ili $D,$A?
Vrijedi li to (ako vrijedi) i za prikaz broja na D1? Jer ovo vidim da vrijedi samo za prikaz onoga na A1.....Hvala na trudu
|
|
[Vrh] |
|
hendrix Forumaš(ica)
Pridružen/a: 03. 09. 2012. (15:59:06) Postovi: (92)16
|
Postano: 12:35 čet, 6. 11. 2014 Naslov: |
|
|
Iskreno, ne sjecam se bas toga o cemu pricas, a vjerujem da imam i vrlo jednostavan razlog :D
Cini mi se da cijeli semestar nismo nijednom pokrenuli neki "ispis", bilo na prakticnim zadacima, bilo inace.
Svi zadaci se testiraju na Memory-displayju (da, "pjesice" - utipkas nesto u memoriju (View -> Memory kad ides buildati, ako me sjecanje dobro sluzi), stisnes onaj lijepi PLAY gumbic i pogledas sto se dogodi :) ).
Tako da, moj savjet ti je, pod pretpostavkom da se zahtjevi kolegija nisu mijenjali u odnosu na proslu godinu (to ce GauSs_ najbolje znati pa neka me prekine ako sam u krivu :D ), da ako i ne uspijes ispratiti gradivo na vjezbama (iako asistent ne grize ako ga prekines pitanjem :) ), doma prvo prodjes iskljucivo po zadacima s vjezbi.
I za kolokvije i za prakticne ce ti biti dovoljno (i to za rjesavanje svega, a ne "za prolaz") samo ono sto se napravi na vjezbama (jasno, uz varijacije na temu, ali s istim skupom obrađenih naredbi).
Primarna preporuka je "HELP" iz Easy68K-a - to je ono gdje upises neku naredbu (npr. [tt]LEA[/tt] :) ), a zatim ti se s lijeve strane izlista sve gdje se to spominje i, osim sturog objasnjenja ("ovo" prebaci "ondje" i sl.), najcesce postoji i vrlo lako razumljiv primjer s nekim brojevima u registrima. Tutoriali jesu ok, ali za kolegij su, kao sto sam vec spomenuo, najbolji tutoriali kodovi s vjezbi. :)
Također, postoji i alternativa PLAY tipki, to je jedna odmah do nje (cini mi se, a lijen sam za skinuti simulator :D ) koja program izvrsava line-by-line, tj. za svaku naredbu mozes vidjeti sto se nakon nje dogodi u memoriji i, jos bitnije, kad ti program pada, vrlo lako mozes detektirati na kojoj liniji je greska / zasto se rusi.
Iskreno, ne sjecam se bas toga o cemu pricas, a vjerujem da imam i vrlo jednostavan razlog
Cini mi se da cijeli semestar nismo nijednom pokrenuli neki "ispis", bilo na prakticnim zadacima, bilo inace.
Svi zadaci se testiraju na Memory-displayju (da, "pjesice" - utipkas nesto u memoriju (View → Memory kad ides buildati, ako me sjecanje dobro sluzi), stisnes onaj lijepi PLAY gumbic i pogledas sto se dogodi ).
Tako da, moj savjet ti je, pod pretpostavkom da se zahtjevi kolegija nisu mijenjali u odnosu na proslu godinu (to ce GauSs_ najbolje znati pa neka me prekine ako sam u krivu ), da ako i ne uspijes ispratiti gradivo na vjezbama (iako asistent ne grize ako ga prekines pitanjem ), doma prvo prodjes iskljucivo po zadacima s vjezbi.
I za kolokvije i za prakticne ce ti biti dovoljno (i to za rjesavanje svega, a ne "za prolaz") samo ono sto se napravi na vjezbama (jasno, uz varijacije na temu, ali s istim skupom obrađenih naredbi).
Primarna preporuka je "HELP" iz Easy68K-a - to je ono gdje upises neku naredbu (npr. LEA ), a zatim ti se s lijeve strane izlista sve gdje se to spominje i, osim sturog objasnjenja ("ovo" prebaci "ondje" i sl.), najcesce postoji i vrlo lako razumljiv primjer s nekim brojevima u registrima. Tutoriali jesu ok, ali za kolegij su, kao sto sam vec spomenuo, najbolji tutoriali kodovi s vjezbi.
Također, postoji i alternativa PLAY tipki, to je jedna odmah do nje (cini mi se, a lijen sam za skinuti simulator ) koja program izvrsava line-by-line, tj. za svaku naredbu mozes vidjeti sto se nakon nje dogodi u memoriji i, jos bitnije, kad ti program pada, vrlo lako mozes detektirati na kojoj liniji je greska / zasto se rusi.
|
|
[Vrh] |
|
nuclear Forumaš(ica)
Pridružen/a: 13. 11. 2011. (17:40:12) Postovi: (74)16
Spol:
|
|
[Vrh] |
|
nuclear Forumaš(ica)
Pridružen/a: 13. 11. 2011. (17:40:12) Postovi: (74)16
Spol:
|
|
[Vrh] |
|
GauSs_ Moderator
Pridružen/a: 28. 01. 2004. (21:01:17) Postovi: (53C)16
Spol:
Lokacija: 231
|
Postano: 23:11 pet, 7. 11. 2014 Naslov: |
|
|
[quote="hendrix"]
Tako da, moj savjet ti je, pod pretpostavkom da se zahtjevi kolegija nisu mijenjali u odnosu na proslu godinu (to ce GauSs_ najbolje znati pa neka me prekine ako sam u krivu :D ), da ako i ne uspijes ispratiti gradivo na vjezbama (iako asistent ne grize ako ga prekines pitanjem :) ), doma prvo prodjes iskljucivo po zadacima s vjezbi.
I za kolokvije i za prakticne ce ti biti dovoljno (i to za rjesavanje svega, a ne "za prolaz") samo ono sto se napravi na vjezbama (jasno, uz varijacije na temu, ali s istim skupom obrađenih naredbi).
Primarna preporuka je "HELP" iz Easy68K-a - to je ono gdje upises neku naredbu (npr. [tt]LEA[/tt] :) ), a zatim ti se s lijeve strane izlista sve gdje se to spominje i, osim sturog objasnjenja ("ovo" prebaci "ondje" i sl.), najcesce postoji i vrlo lako razumljiv primjer s nekim brojevima u registrima. Tutoriali jesu ok, ali za kolegij su, kao sto sam vec spomenuo, najbolji tutoriali kodovi s vjezbi. :)[/quote]
Slazem se. Primjeri sa vjezbi (postoji i link na knjigu na sluzbenoj stranici iz koje vadimo te primjere) i prakticni zadaci (uz HELP simulatora) sasvim su dovoljni
Takodjer, ako vam je nesto na vjezbama brzo dignite ruku i zamolite da se ponovi. Nema nikakvog srama u tome 8)
hendrix (napisa): |
Tako da, moj savjet ti je, pod pretpostavkom da se zahtjevi kolegija nisu mijenjali u odnosu na proslu godinu (to ce GauSs_ najbolje znati pa neka me prekine ako sam u krivu ), da ako i ne uspijes ispratiti gradivo na vjezbama (iako asistent ne grize ako ga prekines pitanjem ), doma prvo prodjes iskljucivo po zadacima s vjezbi.
I za kolokvije i za prakticne ce ti biti dovoljno (i to za rjesavanje svega, a ne "za prolaz") samo ono sto se napravi na vjezbama (jasno, uz varijacije na temu, ali s istim skupom obrađenih naredbi).
Primarna preporuka je "HELP" iz Easy68K-a - to je ono gdje upises neku naredbu (npr. LEA ), a zatim ti se s lijeve strane izlista sve gdje se to spominje i, osim sturog objasnjenja ("ovo" prebaci "ondje" i sl.), najcesce postoji i vrlo lako razumljiv primjer s nekim brojevima u registrima. Tutoriali jesu ok, ali za kolegij su, kao sto sam vec spomenuo, najbolji tutoriali kodovi s vjezbi. |
Slazem se. Primjeri sa vjezbi (postoji i link na knjigu na sluzbenoj stranici iz koje vadimo te primjere) i prakticni zadaci (uz HELP simulatora) sasvim su dovoljni
Takodjer, ako vam je nesto na vjezbama brzo dignite ruku i zamolite da se ponovi. Nema nikakvog srama u tome
_________________ The purpose of life is to end
Prosle su godine kolokviji bili laksi, zar ne?
|
|
[Vrh] |
|
notimeforlogin Gost
|
|
[Vrh] |
|
istok Forumaš(ica)
Pridružen/a: 19. 10. 2012. (13:40:42) Postovi: (11)16
Spol:
|
|
[Vrh] |
|
|