ENTERPRISE KLUB
2019. szeptember 7., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Részletek
Welcome, Guest. Please login or register.


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

Offline endi

  • EP addict
  • *
  • Posts: 7160
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
    • Honlapom
Re: Assembly programozás
« Reply #1050 on: 2016.May.30. 19:42:31 »
:shock: 60? Hogyan?

ja bocs 50 :D
hozzászoktam már a mobilokhoz :D
Vigyázat! Szektás vagyok! :)

Offline Povi

  • EP addict
  • *
  • Posts: 1857
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 50.0.2661.102 Chrome 50.0.2661.102
    • View Profile
    • http://povi.fw.hu
Re: Assembly programozás
« Reply #1051 on: 2016.May.31. 19:39:46 »
van valakinek ötlete osztó rutinra?
32 bites előjeles egészt kell oszatni 16 bites előjeles egésszel

az eredmény 16 bites előjeles (ha nem fér bele, az nem baj)
meg persze kéne a maradék is 16 bites előjelesként
*** Speicherplatz zu klein

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 793
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 46.0 Firefox 46.0
    • View Profile
Re: Assembly programozás
« Reply #1052 on: 2016.May.31. 22:12:18 »
van valakinek ötlete osztó rutinra?
32 bites előjeles egészt kell oszatni 16 bites előjeles egésszel

az eredmény 16 bites előjeles (ha nem fér bele, az nem baj)
meg persze kéne a maradék is 16 bites előjelesként
Úgy kell csinálni mint ahogyan mindig. Az előjelek alapján meghatározod az eredmény előjelét, veszed a számok abszolút értékét, az osztót fellépteted addig amíg még kisebb az osztandónál, aztán összehasonlítgatod és szükség szerint kivonogatod a visszaléptetgetett osztót, az elvégzett kivonásokat a hányadosban 1-es bittel jelzed, és minden léptetésnél lépteted a hányados bitjeit is. Amikor visszaállt az eredeti osztó és azzal is elvégezted a kivonást (ha kell), megkaptad a maradékot is. Annyi a kihívás, hogy nem tudod úgy tárolni, hogy a CPU egy utasítással tudja kezelni a 32 bites számodat, ezért az összehasonlításokat az alsó és felső szóra is el kell végezni az eredményük összegzésével, illetve a léptetéseknél a kicsúszó biteket át kell vinni az osztó kiterjesztett dupla szavának alsó és felső fele között.

Szerk.: Annyi jutott még eszembe, hogy nem szokás "felléptetni" az osztót, hanem rögtön a 16 bittel feltolt pozícióból indítanak, így egyszerűbb lesz a kód.
« Last Edit: 2016.June.01. 11:32:12 by ergoGnomik »

Offline Povi

  • EP addict
  • *
  • Posts: 1857
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 51.0.2704.103 Chrome 51.0.2704.103
    • View Profile
    • http://povi.fw.hu
Re: Assembly programozás
« Reply #1053 on: 2016.August.01. 22:09:28 »
hogy működik a DAA?
hogyan tudok BCD-ben számolni (összeadni) Z80-on?

ld a, 0x79
add a, 0x88    ; A = 1, Carry = 1
daa

ekkor A=0x67 lesz? (79+88 = 167)

és a Carry meg gondolom beállítva

vagy teljesen máshogy működik?

*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 5381
  • Country: hu
  • OS:
  • Linux / Sony Ericsson SK17iv Linux / Sony Ericsson SK17iv
  • Browser:
  • Safari 4.0 Safari 4.0
    • View Profile
Re: Assembly programozás
« Reply #1054 on: 2016.August.01. 22:17:35 »
Ugy emlexem igy muxik, hasznaltam ma r parszor, de csak 99%-ra mondom.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 47.0 Firefox 47.0
    • View Profile
    • http://lgb.hu/
Re: Assembly programozás
« Reply #1055 on: 2016.August.01. 23:28:40 »
Nekem a DAA "trukkos" felhasznalasa kapcsan ez tetszett (0-15 konvertalasa hex ertekre ami kirakhato mint ascii karakter):

Code: ZiLOG Z80 Assembler
  1. AND  $0F
  2. ADD  $90
  3. DAA
  4. ADC  $40
  5. DAA
  6.  

Remelem jol emlekeztem ra fejbol :)

Offline Povi

  • EP addict
  • *
  • Posts: 1857
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 47.0 Firefox 47.0
    • View Profile
    • http://povi.fw.hu
Re: Assembly programozás
« Reply #1056 on: 2016.August.02. 00:04:43 »
Ugy emlexem igy muxik, hasznaltam ma r parszor, de csak 99%-ra mondom.
ja, úgy tűnik, működik, kipróbáltam... :-)
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1857
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 47.0 Firefox 47.0
    • View Profile
    • http://povi.fw.hu
Re: Assembly programozás
« Reply #1057 on: 2016.August.02. 00:05:13 »
Nekem a DAA "trukkos" felhasznalasa kapcsan ez tetszett (0-15 konvertalasa hex ertekre ami kirakhato mint ascii karakter):

Code: ZiLOG Z80 Assembler
  1. AND  $0F
  2. ADD  $90
  3. DAA
  4. ADC  $40
  5. DAA
  6.  

Remelem jol emlekeztem ra fejbol :)

ilyesmi, de egy DAA elég hozzá:
http://zxm.speccy.cz/data/Z80%20Bits.html#5.2
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1857
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 72.0.3626.121 Chrome 72.0.3626.121
    • View Profile
    • http://povi.fw.hu
Re: Assembly programozás
« Reply #1058 on: 2019.March.23. 11:10:15 »
Sakk program 377 byte-on! http://chesskelet.x10host.com/

Spectrumra, forráskóddal együtt! Lacika! figyelj! :-)

Monjduk pl. sáncolni nem lehet benne, és az en-passant-ot se ismeri (de ez utóbbit a Cyrus se)
*** Speicherplatz zu klein

Offline endi

  • EP addict
  • *
  • Posts: 7160
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 73.0.3683.103 Chrome 73.0.3683.103
    • View Profile
    • Honlapom
Re: Assembly programozás
« Reply #1059 on: 2019.May.29. 20:42:16 »
online z80 fordító
http://clrhome.org/asm/
Vigyázat! Szektás vagyok! :)

Offline Spidermans Friend

  • EP fan
  • *
  • Posts: 128
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 66.0 Firefox 66.0
    • View Profile
Re: Assembly programozás
« Reply #1060 on: 2019.June.15. 11:38:58 »
Nemrég belenézegettem a Cyclone-ba és az Exolon-ba, és megtaláltam, hol vannak bennük a sprite-ok, illetve a pályák eltárolva. Ezen sikeremen felbuzdulva szeretném az Exolon-t felderíteni, hogy is működik az egész játék, esetleg módosítgatni ezt-azt. Z80 gépi kódban elég alap szinten vagyok, de nagyon érdekelni kezdett. Milyen segédprogikat ajánlotok ilyesmihez? Spekihez van a Skoolkit, de azzal nem sikerült még boldogulnom. Egyáltalán a Speki vagy az EP változatokat érdemesebb piszkálni?

Offline geco

  • EP addict
  • *
  • Posts: 5381
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 67.0 Firefox 67.0
    • View Profile
Re: Assembly programozás
« Reply #1061 on: 2019.June.16. 12:50:23 »
Ez attól függ, hogy mit szeretsz jobban, EP-n szeretnél dolgozni, vagy inkább PC-n, én SjASMEP-t használom (mégha az új képesságeinek csak töredékét is), a forrásszöveg mókolására meg a Notepad++-t, disassemblyre a dZ80W-t, tömörítésre EPCOMPRESS-t. képkonverzióra EPIMGCONV-ot :D
Attól függ, a maga nemében mind a kettő marha jól néz ki, a Speccy verzió szerintem az egyik legszebb Speccy játék.

Offline endi

  • EP addict
  • *
  • Posts: 7160
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 73.0.3683.103 Chrome 73.0.3683.103
    • View Profile
    • Honlapom
Re: Assembly programozás
« Reply #1062 on: 2019.June.16. 16:35:24 »
exolont szerintem már visszafejtették.
most hirtelen ezt találtam:
https://bitbucket.org/esl/exolon-zx/src/default/

mondjuk exolon úgy lenne jó ha pl kihasználná a 42 karakter széles képet, meg ilyesmik :)
a cpc col16 módú verzió se rossz.
Vigyázat! Szektás vagyok! :)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13431
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 67.0 Firefox 67.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Assembly programozás
« Reply #1063 on: 2019.June.17. 11:00:01 »
Én egyszer álltam neki egy egész játéknak: Lirus
Ahogy általában, ehhez is az IDA-t használtam disassemblernek, ebben az a jó, hogy folyamatosan tudod alakítani a kódot. Pl elnevezgeted a felismert memória címeket, aztán ahogy sokasodnak, az ismeretlen kódrészletekről is egyre könnyebben látszik mit csinál.
Ami már kezdetnél is nagy könnyebbség: nem ész nélkül disassemblál mindent, hanem megadsz egy belépési pontot, és onnantól "lefuttatja" a kódot, végig menve minden híváson, ugráson. Így már az elején elég jól elválik egymástól, hogy mi kód, mi adat.

Offline geco

  • EP addict
  • *
  • Posts: 5381
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 60.0 Firefox 60.0
    • View Profile
Re: Assembly programozás
« Reply #1064 on: 2019.June.17. 11:06:40 »
Ami már kezdetnél is nagy könnyebbség: nem ész nélkül disassemblál mindent, hanem megadsz egy belépési pontot, és onnantól "lefuttatja" a kódot, végig menve minden híváson, ugráson. Így már az elején elég jól elválik egymástól, hogy mi kód, mi adat.
Na, ez nekem nem tetszett annyira, 6510-es forrást próbáltam megetetni vele, és egy csomó kódot nem talált meg, és a data részt is hiányosnak eléggé véltem :D , és megpróbáltam az adatokat 8-asával grouposítani, nem ment :( Nem tudom z80-ra mennyivel jobb, azt nem próbáltam.