Welcome, Guest. Please login or register.


Author Topic: Assembly programozás (Read 200273 times)

Offline Povi

  • EP addict
  • *
  • Posts: 2123
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 33.0.1750.154 Chrome 33.0.1750.154
    • View Profile
    • http://povi.fw.hu
Re: Assembly programozás
« Reply #765 on: 2014.April.11. 09:04:43 »
Más téma, ami eszembe jutott:
Van-e értelme annak a kifejezésnek, hogy "jól megizzasztom a procit"? Pl. Mandelbrot-halmaz számítással, vagy Small Demo futtatásával... :-)
Hiszen ha épp "nem csinál semmit se" a Z80, akkor is valamilyen ciklusban kell hogy legyen, pl. vár egy billentyűlenyomásra. Vagyis ugyanúgy olvassa be a következő utasítást, és hajtja végre, mintha épp a következő Mersenne-prímet keresné. Egyedül a HALT-tal lehetne megállítani a procit, ha jól gondolom (az első megszakításig), de egyébként mitől "izzadna" jobban, mint ha csak bill. nyomásra várna?
Mert ugyebár laptopoknál pl. lenne értelme erről beszélni, ott alacsonyabb órajelre teszi a rendszer a procit, ha nincs számításigényes feladat, de ugye ez a Z80-nál nem érvényes. Vagy mégis?
*** Speicherplatz zu klein

Offline szipucsu

  • EP addict
  • *
  • Posts: 9196
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Assembly programozás
« Reply #766 on: 2014.April.11. 14:08:56 »
Quote from: Povi
"jól megizzasztom a procit"?
Pl. arra kényszerítjük, hogy ha döcögve is és nagyon akadozva, de játsszon le DTM zenét, miközben Iview formátumú videót játszik le, nem?
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline lgb

  • EP addict
  • *
  • Posts: 3555
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
    • http://lgb.hu/
Re: Assembly programozás
« Reply #767 on: 2014.April.11. 20:18:46 »
Quote from: Povi
Más téma, ami eszembe jutott:
Van-e értelme annak a kifejezésnek, hogy "jól megizzasztom a procit"? Pl. Mandelbrot-halmaz számítással, vagy Small Demo futtatásával... :-)

Szerintem ez inkabb nyelvi fordulat jelen esetben. Modern CPU/operacios rendszereknel tobb ertelme van, ott az OS altalaban az idle task-ot hajtja vegre, vagy hasonlo, ami az altalad is emlitett HALT vagy hasonlo trukkot alkalmazva "altatja" a procit, igy a fogyasztas is csokken, stb. Ennek pl notebook eseten komoly ertelmes jelentese is van, lasd akkurol valo max uzemido. Egy "regebbi" proci eseten (mint pl a Z80) ez azert tenyleg nem egyertelmu. Ott is igaz, hogy azert pl a proci fogyasztasa es atlaghomerseklete (ha mar az "izzasztas" a tema ...) fugg attol is, hogy milyen jellegu utasitasikat hasznal a CPU, azaz pl kb egyenletesen a teljes lapka dolgozik, vagy inkabb csak egy specifikus resze, stb. Ezert itt is lehetsegss (bar imho a kulonbseg kevesbe szignifikans), hogy egy igen jol kioptimalizalt "surru" kod esetleg jobban megdolgoztatja kis CPU-nkat.

Offline Ferro73

  • EP lover
  • *
  • Posts: 822
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
Re: Assembly programozás
« Reply #768 on: 2014.August.27. 21:38:12 »
Egy pár rejtet és ismeretlen z80 utasitást nem találok pedig létezik az utasítás neve nem találam sehol az utasítás kódjára nem emlékszem de tudom, hogy van.
Az utasítás hasonló az   SRA   utasításhoz ami 0 -> b7.....b0 -> CY
 csinálja de ez az utasítás                              1 -> b7.....b0 -> CY
Még igazi EP128-on kerestem meg igaz nem használtam soha.
Akkor úgy gondoltam ha 0-t tölthetünk be akkor 1-t is lehet.

Offline Povi

  • EP addict
  • *
  • Posts: 2123
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 35.0.1916.153 Chrome 35.0.1916.153
    • View Profile
    • http://povi.fw.hu
Re: Assembly programozás
« Reply #769 on: 2014.August.28. 08:51:05 »
Itt van egy lista a nem dokumentált utasításokról:
http://www.z80.info/z80undoc.htm

Persze lehet, hogy létezik ennél jobb lista is, bővebb magyarázatokkal, de hirtelen ezt találtam.
Viszont mostanában éppen hogy próbáljuk kiirtani a nem dokumentált utasításokat a progikból, hogy Zozo Z180-as EP-projectjén is gond nélkül fussanak a dolgok.
*** Speicherplatz zu klein

Offline Ferro73

  • EP lover
  • *
  • Posts: 822
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
Re: Assembly programozás
« Reply #770 on: 2014.August.28. 21:37:25 »
Nem azért csak eszembe jutott miközben PIC-re alakítom a Z80-as uatsításokat.
Amugy az ASMEN-ben sem jelennek meg pedig a változások észlelheöek.
Bele építhették volna anno és inverz kiírással LIST-ázhatták volna.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14089
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Assembly programozás
« Reply #771 on: 2014.August.28. 21:47:00 »
Quote from: Ferro73
Bele építhették volna anno és inverz kiírással LIST-ázhatták volna.
Mivel nem voltak dokumentálva, honnan tudhatták volna? :oops:
Bele telt pár évebe mire felfedezték az emberek.
A FENAS az már ismeri a felezett index regiszteres kupacot.
Haluskának meg én súgtam, így a HEASS az már az összeset tudja fordítani.

Offline Ferro73

  • EP lover
  • *
  • Posts: 822
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 28.0 Firefox 28.0
    • View Profile
Re: Assembly programozás
« Reply #772 on: 2014.August.28. 22:09:49 »
Na igen mert a többségük Basic , Pascal, Lisp, Forth-ban probálgattak.
Igaz én is csak akkor találtam rá mikor kiváncsi lettem mit csinál a proci ismeretlen kodoknál.
Lehet nem voltak olyan kiváncsiak vagy jó volt a szemellenzőjük.
Így talán több is lehettet min 158 utasítás bár lehet a 158 utasítás a Z80-ra vonatkozik nem pedig az utána érkezettekre  A,B,C,H.

Offline Povi

  • EP addict
  • *
  • Posts: 2123
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 29.0 Firefox 29.0
    • View Profile
    • http://povi.fw.hu
Re: Assembly programozás
« Reply #773 on: 2014.September.08. 22:45:11 »
erre van valami elegánsabb megoldás?
Code: ZiLOG Z80 Assembler
  1.     add a,65
  2.     bit 7,a
  3.     call nz,xxxx
  4.  

rémlik, mintha a P státusz bit nézegetésével is lehet valamit trükközni...
« Last Edit: 2014.September.08. 23:02:26 by Zozosoft, Reason: code tag z80-asítása »
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 6354
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 24.0 Firefox 24.0
    • View Profile
Re: Assembly programozás
« Reply #774 on: 2014.September.08. 22:53:58 »
Code: ZiLOG Z80 Assembler
  1.     add a,65
  2.     call pe,xxxx
« Last Edit: 2014.September.08. 23:02:46 by Zozosoft, Reason: code tag z80-asítása »

Offline Povi

  • EP addict
  • *
  • Posts: 2123
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 29.0 Firefox 29.0
    • View Profile
    • http://povi.fw.hu
Re: Assembly programozás
« Reply #775 on: 2014.September.08. 23:01:03 »
köszi
*** Speicherplatz zu klein

Offline IstvanV

  • EP addict
  • *
  • Posts: 4825
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Assembly programozás
« Reply #776 on: 2014.September.09. 10:49:21 »
Pontosabban: CALL M, xxxx

Offline geco

  • EP addict
  • *
  • Posts: 6354
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 24.0 Firefox 24.0
    • View Profile
Re: Assembly programozás
« Reply #777 on: 2014.September.09. 11:05:51 »
Quote from: IstvanV
Pontosabban: CALL M, xxxx
Mi a különbség a kettő között, mármint működésügyileg?
Emun teszteltem PE-vel működött, igaz a 00h-s, és a 80h-s összeggel nem teszteltem.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4825
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Assembly programozás
« Reply #778 on: 2014.September.09. 11:48:13 »
Quote from: geco
Mi a különbség a kettő között, mármint működésügyileg?
Emun teszteltem PE-vel működött, igaz a 00h-s, és a 80h-s összeggel nem teszteltem.
A CALL M feltétele akkor teljesül, ha az eredmény negatív (a 7. bit 1), ami azonos az eredeti BIT 7, A-t használó kóddal.

A CALL PE viszont előjeles túlcsordulást tesztel, és a feltétel akkor teljesül, ha eredetileg pozitív A után negatív az eredmény. Akkor azonban nem, ha már az összeadás előtt is negatív az A. De ha valójában a túlcsordulás, és nem a negatív eredmény tesztelése a cél, akkor ez a jó megoldás.

Offline geco

  • EP addict
  • *
  • Posts: 6354
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 24.0 Firefox 24.0
    • View Profile
Re: Assembly programozás
« Reply #779 on: 2014.September.09. 12:04:30 »
köszi szépen, ez így már teljesen világos, eddig nem találkoztam részletes leírással.