Welcome, Guest. Please login or register.


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

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Assembly programozás
« Reply #375 on: 2013.March.23. 20:55:25 »
Quote from: Z80System
Es az van, hogy az elmult evtizedekben baromira hozzaszoktam a magasabb szintu progrmnyelvekhez (C, C++, C#, java es az osszes tobbi),
En pont forditva vagyok :) Az, hogy sokat kell munkam soran is foglalkoznom magasabb szintu nyelvekkel, csak megerosit abban, hogy hobbynak assembly az igazi, es akkor erzem igazan az elegedettseget, ha abban sikerult vmit megoldani :)

Quote
kiprobaltam az SDCC- t, ossze is hoztam hogy adjon nekem egy EP- n futathato binarist a vege, C- ben lehet fejleszteni, ami tokeletesen eleg, es a legalapvetobb assembly szenvedestol megszabadit, viszont a forditott kod az SDCC- vel szerintem marha nagy lesz, mikor float- okat szamolok, akkor pedig iszonyatosan nagy ...

Na ezt pl pont en is eljatszottam szorakozasbol, hogy sdcc-hez irtam nemi EP-s crt0-t (valahol emlitettem is a forumon). Mondjuk speciel a float olyan dolog, hogy matematikai dolgokat leszamitva miert kene nekem valaha is? :) Soha nem hianyzott nekem se C64-en se mas gepen a float, sot meg PC-n magas szintu nyelvekben sem hasznalok egeszeken kivul semmit szinte. Persze az is igaz, hogy nekem altalaban nem matematikai problemat kell megoldani, vagy valami szimulaciot, stb.

Van viszont pl a Z88DK, ami ugyan elvileg nem "teljes" C csak "small-C", viszont van EP support is benne, keress ra, bar errol is irtam valahol. Igaz, float support eszembe se jutott, hogy teszteljem. Kulonbozo 65xx (pl C64) CPU-kat hasznalo gepekhez is van C compiler (cc65), na abban pl nincs is float support, bar nem is tudom mire lenne jo. Eleve BASIC kapcsan se ertettem soha, hogy miert float az alaptipus, amikor az pont a leglassabb. En ugy terveztem volna a BASIC-et, hogy defaulte integer only, es spec valtozonevre (mint a string-nel a $) lesz csak float. Bar basic-bol utoljara vagy 20 eve voltam jo c64-en, szoval a basic-kel kapcsolatos meglatasaimat inkabb hagyjuk :)

Quote
szoval nem tetszett (megha a csillagos effekt framework kodjait abban is irtam).

De minek ahhoz float support? :) Ha te meg tudod fogalmazni egeszekkel, tuti gyorsabb lesz mindenkeppen, mintha sw-esen megvalositott float-okat hasznal. Ez kb igaz minden hw-ra, ahol nincs hw szintu float (FPU) tamogatas, es a CPU "nativan" csak egeszekkel szamol.

Amugy, ha BASIC tul lassu, asm meg tul "macera" akkor ott a FORTH, ha mar ugy is top tema mostansag! :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #376 on: 2013.March.23. 21:14:45 »
minek a float ...

hat mer bitbabralas nelkul szeretnel interpolalni egy szamot (pld egy rgb komponenst) minimumbol maximumba, es nincs arra idod, hogy 2 ora alatt anak orulj, hogy sikerult kekbol-lilba atmenetet szamolnod fix pontos szamitasokkal, 3 regiszterben

forth ...

hat raneztem tegnap, ha mar igy elokerult, de hat az is egy interpretalt nyelv, megha gyorsabb is abasic- nel, assembly- vel osszehasonlithatatlan, nem relokalhato, kell neki egy futtato framework, satobbi ...

nekem olyan megoldas kene, ahol egy lpt bekapcsolas nem lesz kilobajtok kodja, relokalhato, tehat kontrollalhatom minden assembly utasitasat, de felszabadit a regiszterhasznalat alol, es a lokalis valtozok esetleg strukturak nem ismeretlen fogalom neki
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #377 on: 2013.March.23. 21:17:59 »
Van egyebkent ep- re C fordito... ?

Tehat hogy az ep- n valami programnak adhatom be a C forrast es futtathato kodot fordit belole ? ha van ilyen van barkinek tapasztalata mennyire sikerult optimalisra csinalniuk ?
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Assembly programozás
« Reply #378 on: 2013.March.23. 21:29:34 »
Quote from: Z80System
Van egyebkent ep- re C fordito... ?
IS-DOS-ra van HiSoft C, de szerintem azzal sokra nem jutunk :-(

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #379 on: 2013.March.23. 21:30:37 »
valami ilyesmire gondolnek, vagy ha nincs ilyen megoldas, akkor macro- kal kifejezve:

http://en.wikipedia.org/wiki/High_Level_Assembly



High Level Assembly (HLA) is an assembly language developed by Randall Hyde. It allows the use of higher-level language constructs to aid both beginners and advanced assembly developers. It fully supports advanced data types and object-oriented assembly language programming. It uses a syntax loosely based on several high-level languages (HLL), such as Pascal, Ada, Modula-2, and C++, to allow creating readable assembly language programs, and to allow HLL programmers to learn HLA as fast as possible.




Origins and goalsHLA was originally conceived as a tool to teach assembly language programming at the college/university level. The goal is to leverage students' existing programming knowledge when learning assembly language to get them up to speed as fast as possible. Most students taking an assembly language programming course have already been introduced to high-level control structures such as IF, WHILE, FOR, etc. HLA allows students to immediately apply that programming knowledge to assembly language coding early in their course, allowing them to master other prerequisite subjects in assembly before learning how to code low-level forms of these control structures. "The Art of Assembly Language Programming" by Randall Hyde uses HLA for this purpose.
[edit]High vs. low-level assemblerThe HLA v2.x assembler supports the same low-level machine instructions as a regular, low-level, assembler. The difference is that high-level assemblers (such as HLA, MASM, or TASM on the x86) also support high-level-language-like statements such as IF, WHILE, and so on, and fancier data declaration directives, such as structures/records, unions, and even classes.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #380 on: 2013.March.23. 21:35:07 »
Quote from: Zozosoft
IS-DOS-ra van HiSoft C, de szerintem azzal sokra nem jutunk :-(

Mert vacak, vagy mi ? Mar probalta valaki ? Nekem tenyleg csak a legalapvetobb ficsorok kellenenek, de azt a leheto leggyorsabban, legtomorebben forditsa, es mar boldog lennek. Ja... meg hogy relokalhato kodot forditson ... kulonben bizonyos exos boviteseket ugye nem lehetne megirni benne ...
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Assembly programozás
« Reply #381 on: 2013.March.23. 22:00:15 »
Mert nem EP program, hanem CP/M.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #382 on: 2013.March.23. 22:10:14 »
hat ja, az SDCC- nel is ugy van, hogy eloallitja a kodot, aztan mindenfele utofeldolgozasokkal kerul a kod arra a cimre, ami az ep- nek kell (100H) ...

de eppenseggel lehet vannak ra opcioik ... hogy nem csak kizarolag a cp/m szabalyai szerint tudnak linkelni ...
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Assembly programozás
« Reply #383 on: 2013.March.23. 22:25:22 »
Vissza az assembly-hez/stb: valahol anno volt rola szo, de keptelen vagyok megtalalni: hogy is tudom a statusz sort hasznalni magam? Vilagos, hogy ST_FLAG exos valtozo ha 0 akkor megjelenik. Maga a tartalma meg BFF6-on levo pointerrel elerheto. Valoban, ez mux is, ha tiltva van az interrupt. Ha nincs, akkor nem jelenik meg semmi, gondolom EXOS visszairja az "uresseget" oda? Ez remlik hogy valahol le volt irva a "trukk", hogyan lehet elkerulni ezt, csak epp sehol nem talalom :(

Illetve, ahogy nezem az elejet irja felul, mert ugye a CAPS es hasonlo dolgok ott jelennek meg. A kerdes az, hogy bizhatok-e benne, hogy a tobbi reszet beken hagyja? :) Latszolag igen egy gyors teszt alapjan.
« Last Edit: 2013.March.23. 22:56:16 by lgb »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Assembly programozás
« Reply #384 on: 2013.March.26. 07:18:31 »
Tudtok PC-n (lehetoleg forraskod szinten is elerheto) futo normalis Z80 assemblert? Kezdek belefutni az SJasm es hasonlo szintu assemblerek limitaciojaba, nevezetesen az "egy file-os" megoldas hatranyaiba. Amire vagyom az egy pl 65xx CPU-k eseten ismert cc65 toolchain, ahol sajat object formatum van, leforditok akar ezer asm forrast, es a vegen a linkerrel fuzom ossze egy "binarissa", lehetoleg fejlett config lehetosegekkel. Letezik ilyen, vagy irnom kell egy Z8o frontendet a cc/ca65-hoz? :) Azert egy nagy projecten dolgozni egyetlen file-ba surritve mindent kicsit gaz egy ido utan (nem, az include az nem er, attol meg egyetlen file, hiszen egy menetben dolgozza fel!)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #385 on: 2013.March.26. 08:54:15 »
SDCC -ben van inline assembly, igy meg tudod csinalni azt hogy C fuggvenyekbe irkalod az assembly kodot, akarhany file- ba, es a vegen osszelinkeli egy binarissa.

(Mellesleg ha nem sajnalod ra a memoriat/futasi idot, akkor C- ben is kodolhatsz vele)

es nyilt forrasu is.
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Assembly programozás
« Reply #386 on: 2013.March.26. 08:59:07 »
Quote from: Z80System
SDCC -ben van inline assembly, igy meg tudod csinalni azt hogy C fuggvenyekbe irkalod az assembly kodot, akarhany file- ba, es a vegen osszelinkeli egy binarissa.

(Mellesleg ha nem sajnalod ra a memoriat/futasi idot, akkor C- ben is kodolhatsz vele)

es nyilt forrasu is.

Tudom, tekintve hogy irtam hozza mar crt0/lib implementaciot, hogy EP-re lehessen vele forditani :) Amde az asm szintaxisa nekem valahogy nagyon nem jon be. Hat hmm, mind1, lehet hozza kene szoknom megiscsak ... Ha jobb nem vala.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Assembly programozás
« Reply #387 on: 2013.March.26. 09:05:31 »
Ez egyébként mért jó? Én annak örülök tökre, hogy nem kell linkerrel szenvedni, meg, hogy mindent bele lehet tenni egy fájlba, már include se kell :-)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Assembly programozás
« Reply #388 on: 2013.March.26. 09:14:06 »
Quote from: Zozosoft
Ez egyébként mért jó? Én annak örülök tökre, hogy nem kell linkerrel szenvedni, meg, hogy mindent bele lehet tenni egy fájlba, már include se kell :-)

"Egyszeru" projectnel valoban. De probalj valami bonyolultabbat, mondjuk pl a Linux kernel erdekes lenne egy file-ban :) Na jo, ez rossz pelda, mert ugye az nagyreszt C azert, de a lenyegen mondjuk ez nem valtoztat. En mindig makefile-okat is irok stb, igy rebuildnel csak a modositott file-okat forditja ujra, aztan a vegen linkeli ossze. Es akkor meg nem is beszeltem olyan finomsagokrol amikor relocatable kod van. Ok ORG-al lehet nyilvan trukkozni (ahogy csinalom a primo emuben is) am ez egy kis ido mulva elegge atlathatatlanna kezd valni. cc65-nel a linkernek egy egesz bonyi config file-t is adhatsz olyan leirasokkal h szegmens igazitas, load/run cim, meg hasonlok. Bar az teny, hogy egy szimplabb projectnel a kulon link lepes az inkabb nyug sok embernek mint elony, ezt belatom :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #389 on: 2013.March.26. 09:33:31 »
Quote from: Zozosoft
Ez egyébként mért jó? Én annak örülök tökre, hogy nem kell linkerrel szenvedni, meg, hogy mindent bele lehet tenni egy fájlba, már include se kell :-)
Fura, hogy ezt kerded, annyira trivialis, hogy nem ertem nalad hogyhogy maskepp van ...

Egy file- ban keresgetni kell a fuggvenyeket, elemeket, ha file- okba rakod, az egy hierarchia szintet csoportosit a kodok elemein, ha a file- okat meg konyvtarakba is rakod, akkor az meg akarhany szintet is csoportosit a kodok elemein. Igy ha megnyitod az "egypixeles csillagokat kirajzolo kodok" file- jat, akkor abban csak a 32 darab egy pixeles csillagot kirajzolo kod lesz, mig a masikban lesz a 32 darab 4 pixeles kod, stb ... konnyeb navigalni, megtalalni. A modern IDE- k ugye mar meg ettol a hierarchizalastol is igyekeznek elszakadni, es a nyelvi elemek helyet szinte fuggetlenitik magatol a nyelvi logikai elemtol, es a kereseseket nyelvi elemek szintjen igyekszenek nyujtani. Es mar majdnem jol mukodnek, de a c++ vonatkozasaban meg mindig volt valami hiba, es ha az ember nem akar a tokeletlensegekkel, megkotesekkel elni, akkor marad a file szintu hierarchizalasnal. Aztan megszokja, es ezt hozza vissza EP- re is ...
Z80 System