tasm/masm tyylillä linuxissa?

Linuxin käyttämä assembler on käytännössä estänyt assemblerin lisäopiskelun hankaluutensa tähden. Nyt kysynkin, että onko mahdollista käyttää Borlandin tyyliä linuxissa? Entä onko jossain jotain nettikurssia, josta saisi kickstarttia opiskeluun? Viimeksi kai tehnyt vuonna miekka ja kypärä ms-dos aikana ruudulle tulostavan pelin assemblerilla..
Ilmoita


Ylläpito on poistanut tästä viestin sääntöjen vastaisena.

Ilmoita

Ylläpito on poistanut tästä viestin sääntöjen vastaisena.

Ilmoita
dosboxissa toimii tasm ihan ok.

Joten mikä on ongelma?

Toki dosbox vaatii hieman virittelyä alussa, mutta sen jälkeen toimii ok.
1 VASTAUS:
vitun DOS-BOXi heh, tällähän lähinnä pelaillaan jotain wolfenstein 3d- ensimmäistä versiota, kun noniin... pöytäkoneiden ja grafiikkakiihdyttimien tehot, noniin.. tai hhahahah
+Lisää kommentti
Intel ainakin tarjoaa ilmaiseksi assemblerin omille prosessoreilleen ilmaiseksi, en ole itse vähään aikaan kokeillut sitä, mutta pitäisi olla sitten kaikki uusimmat prosessoreiden ominaisuudetkin pitäisi olla tuossa. IDE-liittymää tuossa ei tainnut olla.
Ilmoita
ASM-koodin lisäys Lazarus ohjelmassa, taitaa just mennä samoin kuin Delhissäkin.
Tuossa esimerkki, jossa Edit1 kentästä poimitaan luku, ja siihen lisätään 255, ja tulos annetaan Edit2 kentässä.

https://imgur.com/KdPXFIM
2 VASTAUSTA:
"ASM-koodin lisäys Lazarus ohjelmassa, taitaa just mennä samoin kuin Delphissäkin."

no kun ei!

Ikävä kyllä Lazarus käyttää oletuksena sekopäistä GAS -syntaksia.

Ongelman voi korjata näin:

{$IFDEF FPC}
{$MODE DELPHI}
{$ASMMODE INTEL}
{$ENDIF}

tuo sitten jokaisen UNITin alkuun.

jos 4 riviä alkaa ottaa kupoliin, sitten:

{$IFDEF FPC} {$MODE DELPHI} {$ASMMODE INTEL} {$ENDIF}

toiminee näinkin.

32 -bittisessä i386 CPU:ssa siis

1. parametri -> EAX
2. parametri -> EDX
3. parametri -> ECX

huomaa:

jos ei ole itsenäinen proseduuri/funktio, vaan luokan metodi, niin niissä viittaus luokkaan itseensä (Self) on ensimmäinen näkymätön parametri, joten 1. näkyvä parametri on tosiasiassa 2. parametri, toinen näkyvä parametri on tosiasiassa 3. parametri jne.

Assemblerkoodin käyttö on freepascal ja delphi -kääntäjillä helpompaa ja vähemmän riskialtista kuin C -kielellä.

Ja jos köyttöjärjestelmän oletuskutsutapa on cdecl kuten se linuxissa on, niin Delphissä ja FreePascalissa molemmissa toimii tämä:

function jotakin(A,B:Integer):Integer; cdecl;

tuohon tarvittaessa lisämääreet perään, esim. C -kielellä koodatun DLL:n (Windows) tai .so -kirjastion (Linux) käyttö:

const
{$IFDEF MSWINDOWS}
DllName = 'kirjasto.dll';
{$ENDIF}

{$IFDEF LINUX}
DllName = 'libkirjasto.so';
{$ENDIF}

function jotakin(A,B:Integer):Integer; cdecl; external DllName;
delphikoodaaja kirjoitti:
"ASM-koodin lisäys Lazarus ohjelmassa, taitaa just mennä samoin kuin Delphissäkin."

no kun ei!

Ikävä kyllä Lazarus käyttää oletuksena sekopäistä GAS -syntaksia.

Ongelman voi korjata näin:

{$IFDEF FPC}
{$MODE DELPHI}
{$ASMMODE INTEL}
{$ENDIF}

tuo sitten jokaisen UNITin alkuun.

jos 4 riviä alkaa ottaa kupoliin, sitten:

{$IFDEF FPC} {$MODE DELPHI} {$ASMMODE INTEL} {$ENDIF}

toiminee näinkin.

32 -bittisessä i386 CPU:ssa siis

1. parametri -> EAX
2. parametri -> EDX
3. parametri -> ECX

huomaa:

jos ei ole itsenäinen proseduuri/funktio, vaan luokan metodi, niin niissä viittaus luokkaan itseensä (Self) on ensimmäinen näkymätön parametri, joten 1. näkyvä parametri on tosiasiassa 2. parametri, toinen näkyvä parametri on tosiasiassa 3. parametri jne.

Assemblerkoodin käyttö on freepascal ja delphi -kääntäjillä helpompaa ja vähemmän riskialtista kuin C -kielellä.

Ja jos köyttöjärjestelmän oletuskutsutapa on cdecl kuten se linuxissa on, niin Delphissä ja FreePascalissa molemmissa toimii tämä:

function jotakin(A,B:Integer):Integer; cdecl;

tuohon tarvittaessa lisämääreet perään, esim. C -kielellä koodatun DLL:n (Windows) tai .so -kirjastion (Linux) käyttö:

const
{$IFDEF MSWINDOWS}
DllName = 'kirjasto.dll';
{$ENDIF}

{$IFDEF LINUX}
DllName = 'libkirjasto.so';
{$ENDIF}

function jotakin(A,B:Integer):Integer; cdecl; external DllName;
Mitä sinä halusit sanoa ?

Ensin juttelit sekavia, ja asian tueksi pistit kääntäjän ohjeita.

sitten jatkoit taas sekavilla jutuilla

ja annoit juttujen tueksi ulkopuolisen kirjaston linkitys rivit, joita tarvitaan mikäli käyttää kyseisen kirjaston sisältämää funktiota, rutiinia, muuttujia tai vakioita.

Tämä antaa aihetta kysyä, tunnetko Delhiä, Lazarusta tai ASM koodamista ollenkaan. Tässä ei kuitenkaan ollut mitään järkeä.
+Lisää kommentti
Jos toimitaan niin matalalla tasolla, että tarvitsee assembleria, sitä kutsutaan C kielestä.

Silloin helpoin tapa on käyttää kääntäjän inline assembler toiminnallisuutta. Homma käy helpoiten kun kirjoitat ensiksi C:llä sen mitä haluat. Sitten #ifdef:iä käyttämällä voit kytkeä assembler version koodista ja sinne sekaan pätkä inline assembleria.

http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
2 VASTAUSTA:
Ja toinen sankari

"Jos toimitaan niin matalalla tasolla, että tarvitsee assembleria, sitä kutsutaan C kielestä."

vai pitää vielä C -kieleen turvautua tuon takia. Eikö Delphi ja Lazarus sisällä mitään vastaavaa ?
Turbo-Urpo1 kirjoitti:
Ja toinen sankari

"Jos toimitaan niin matalalla tasolla, että tarvitsee assembleria, sitä kutsutaan C kielestä."

vai pitää vielä C -kieleen turvautua tuon takia. Eikö Delphi ja Lazarus sisällä mitään vastaavaa ?
Et taida hahmoittaa tätä, että miksi pitää turvautua?

Käytännössä ikinä ei tarvitse. Jossain eksoottisessa jutussa jos tarvitsee niin puhutaan parista rivistä.

Niissä eksoottisissa jutuissa missä voi tuollaista tarvita, eli käytännössä jutellaan jotain raudan kanssa, käytetään C-kieltä.

Ei ole mitään järkeä monimutkaistaa asioita lisätyökaluilla.
+Lisää kommentti
Assemby -kielen käyttö osana ohjelmaa on helpompaa Objectpascalissa kuin C -kielessä.
Sekä Delphi että Freepascal mahdollistavat aliohjelmien tai niiden osien kirjoittamisen Assemby -kielellä.

C -kieli ei tarjoa mitään etuja Objectpascaliin verrattuna, sensijaan C -kieli on huomattavasti virhealttiimpaa.

C -kielessä ei esim. ole lainkaan mahdollisuutta automaattisiin indeksitarkistuksiin,
Objectpascalissa ne saa päälle ohjauslauseella {$R+}

Kun ohjelma käännetään {$R+}
-tilassa, ei ohjelma voi viitata taulukkoon taulukon ulkopuolelle osoittavalla indeksillä,
vaan yritys tällaiseen laukaisee ERangeCheckError -poikkeuksen (tai runtime errorin, jos poikkeukset eivät ole lainkaan käytössä ohjelmassa).

Lisäksi C -kääntäjä tekee assembly -kielen käytöstä hankalaa Constraints -säännöillään, joiden dokumentointi on sekavaa.

Delphi sensijaan esittää asian hyvin selkeästi:

32 -bittisessä Delphissä 3 ensimmäistä parametria (jos ovat tyypiltään sopivia) menevät rekistereihin EAX, EDX, ECX (tässä järjestyksessä).

Funktion tulos menee AL / AX /EAX -rekisteriin, tai Int64 -tyyppinen tulos rekisteripariin EDX:EAX.

M-Karin höpinät kannattaa jättää omaan arvoonsa, kuten aina !

esimerkki:

function Testi(Foo, Bar, Baz:Longword):Int64;
asm
push ESI
mov ESI, EDX // ESI := Bar
XOR EDX, EDX
add EAX, ESI
adc EDX, 0 // EDX:EAX := Foo + Bar
add EAX, ECX
adc EDX, 0// EDX:EAX := Foo + Bar + Baz
pop ESI
// EDX:EAX := Foo + Bar + Baz;
// 64 -bittinen tulos jätetään EDX:EAX -rekisteripariin.
end;

C -kielellä Constraints -säännöt tekevät tästäkin yksinkertaisesta esimerkistä hankalan toteuttaa oikein.

Delphi on fiksusti dokumentoitu, eikä siinä ole jotain käsittämättömiä Constraints -sääntöjä hankaloittamassa ohjelman saamista oikein ja virheettömästi toteutetuksi.

Lisäksi Delphi IDE:stä löytyy hyvin tehty Debuggeri, josta saa myös rekisterit näkyviin ja askeltaa voi F7 (step into) ja F8 (step over) -komennoilla.

Jos valitset Delphin (Delphi 7; pieniä eroja voi olla eri versioissa) valikosta:
View/Debug Windows/C PU

CPU -ikkunassa voit askeltaa yksi konekielikäsky kerrallaan.

M-Karin päinvastaisista väitteistä huolimatta:

Delphi on väline, jolla homma saadaan oikeasti toimivaksi, ja käyttö on selkeää, ja dokumentteja löytää joko Delphin omasta HELP -systeemistä, tai netistä embarcadero:n sivuilta,
26 VASTAUSTA:
Tämä on täyttä asiaa, ja pitää myös paikkansa.
"Assemby -kielen käyttö osana ohjelmaa on helpompaa Objectpascalissa kuin C -kielessä.
Sekä Delphi että Freepascal mahdollistavat aliohjelmien tai niiden osien kirjoittamisen Assemby -kielellä.

C -kieli ei tarjoa mitään etuja Objectpascaliin verrattuna, sensijaan C -kieli on huomattavasti virhealttiimpaa."

Assember on virhealttiimpaa kuin C.

Tässä nyt haetaan matalantason ohjelmointia, ja silloin C on parempi kuin ObjectPascal koska C on defacto standardi siellä systeemiohjelmoinnissa, siellä missä tarvitaan assembleria.

C-kieli itseasiassa on korkean tason assembler. Yleensä ikinä ei tarvitse kirjoittaa assembleria vaan voi käyttää C:tä mikä on siirrettävää ja vähentää virheitä assembleriin nähden.

Jos sitten haluaa selkeätä ohjelmointia ja välttää virheitä, unohdetaan C:t ja Pascalit ja käytetään vaikka Haskell kieltä. Siinä kun on tehty virheiden tekeminen äärimmäisen vaikeaksi.

"C -kielessä ei esim. ole lainkaan mahdollisuutta automaattisiin indeksitarkistuksiin,
Objectpascalissa ne saa päälle ohjauslauseella {$R+}"

Indeksien tarkistus kertoo siitä, että koodi on virhealtista koska sehän tarkoittaa, että ohjelmassa tallennetaan tilaa indekseihin.
127.0.0.1 kirjoitti:
Tämä on täyttä asiaa, ja pitää myös paikkansa.
Olen täysin samaa mieltä, "delphikoodaaja" puhuu täyttä asiaa.
Turbo-Urpo1 kirjoitti:
Olen täysin samaa mieltä, "delphikoodaaja" puhuu täyttä asiaa.
Mitä nyt tuntuu unohtavan assemblerin olevan virhealtista.
M-Kar kirjoitti:
Mitä nyt tuntuu unohtavan assemblerin olevan virhealtista.
Minä usko että kehitysympäristö ei päästä virhettä läpi. Ja asm -koodin tuottaminen tehdään kielikeskellä suuta, niitä rivejä ei voi noin vaan huitasta, eli sen osuuden kirjoittamiseen keskitytään mitä suurimmalla huolellisuudella. Ja toiseksi, nuo asm -osuudet ovat vain jossakin kriittistä suorituskykyä vaativissa paikoissa.

Aikoinaan commodore 64:llä kirjoitettessa käytettiin konekielistä osuuta noissa kriittistä suorituskykyä vaativissa osuuksissa, ja se sitten onkin hiton hankalaa.
Turbo-Urpo1 kirjoitti:
Minä usko että kehitysympäristö ei päästä virhettä läpi. Ja asm -koodin tuottaminen tehdään kielikeskellä suuta, niitä rivejä ei voi noin vaan huitasta, eli sen osuuden kirjoittamiseen keskitytään mitä suurimmalla huolellisuudella. Ja toiseksi, nuo asm -osuudet ovat vain jossakin kriittistä suorituskykyä vaativissa paikoissa.

Aikoinaan commodore 64:llä kirjoitettessa käytettiin konekielistä osuuta noissa kriittistä suorituskykyä vaativissa osuuksissa, ja se sitten onkin hiton hankalaa.
Ensiksikin, se virhe juurikin tapahtuu todennäköisesti siinä assembler koodissa.

Toisekseen, suorituskyky ei ole mikään syy käyttää assembleria. Tässähän sitäkin kokeiltiin: https://keskustelu.suomi24.fi/t/15448936/assembler-vs-gnu-standard-lib

Sitä suorituskykyä vaativaan koodin hinkkaukseen on C-kieli. Kääntäjä kyllä hoitaa sen tavukoodioptimoinnin tehokkaasti.

Paitsi että C-kielikin tekee rajoitteita optimoinnille, että korkeammalla tasolla tehdessä sitä voi saada helposti enemmän suorituskykyä kun tekee vaikka Haskellilla.

Siinä siis sitten korkean tason optimointi tapahtuisi Haskell -> C käännös ja sitten C -> tavukoodi käännös käy tehokkaasti tähän erikoistuneella kääntäjällä.

Se oli niin. että 80-luvulla assembleria vielä käytettiin suorituskykysyistä. 90-luvulla assemberilla oli mahdollista tehdä joitakin juttuja tehokkaammin hinkkaamalla jotain silmukkaa.

20v sitten meni siihen, että käsin tehty assembler todennäköisesti hitaampaa, eli se on vain poikkeusjuttuihin missä ei ole mahdollista tehdä asiaa ilman assembleria.

Kannattaa tulla sieltä 80-luvulta pois vähitellen. Pitää itseasiassa tutkia oisko nykypäivänä jo mahdollista se että jos vaikka nykypäivän koodi selaimessa toimisi nopeammin kuin se että käsin hinkkaisi assembleria.
M-Kar kirjoitti:
Ensiksikin, se virhe juurikin tapahtuu todennäköisesti siinä assembler koodissa.

Toisekseen, suorituskyky ei ole mikään syy käyttää assembleria. Tässähän sitäkin kokeiltiin: https://keskustelu.suomi24.fi/t/15448936/assembler-vs-gnu-standard-lib

Sitä suorituskykyä vaativaan koodin hinkkaukseen on C-kieli. Kääntäjä kyllä hoitaa sen tavukoodioptimoinnin tehokkaasti.

Paitsi että C-kielikin tekee rajoitteita optimoinnille, että korkeammalla tasolla tehdessä sitä voi saada helposti enemmän suorituskykyä kun tekee vaikka Haskellilla.

Siinä siis sitten korkean tason optimointi tapahtuisi Haskell -> C käännös ja sitten C -> tavukoodi käännös käy tehokkaasti tähän erikoistuneella kääntäjällä.

Se oli niin. että 80-luvulla assembleria vielä käytettiin suorituskykysyistä. 90-luvulla assemberilla oli mahdollista tehdä joitakin juttuja tehokkaammin hinkkaamalla jotain silmukkaa.

20v sitten meni siihen, että käsin tehty assembler todennäköisesti hitaampaa, eli se on vain poikkeusjuttuihin missä ei ole mahdollista tehdä asiaa ilman assembleria.

Kannattaa tulla sieltä 80-luvulta pois vähitellen. Pitää itseasiassa tutkia oisko nykypäivänä jo mahdollista se että jos vaikka nykypäivän koodi selaimessa toimisi nopeammin kuin se että käsin hinkkaisi assembleria.
Eli halu vittuilla on taas kova, HAISTA PASKA URVELO !!!
Turbo-Urpo1 kirjoitti:
Eli halu vittuilla on taas kova, HAISTA PASKA URVELO !!!
Mikä ongelma tosiasioissa on?
M-Kar kirjoitti:
Mikä ongelma tosiasioissa on?
Kannattas edes alkeet opetella, niin tietäsit mistä puhutaan.
Turbo-Urpo1 kirjoitti:
Kannattas edes alkeet opetella, niin tietäsit mistä puhutaan.
Osaan alkeet. Kyse on assembler koodin kutsumisesta ja herran vuonna 2018 assembleria ei käytännössä ole juuri missään. Ne harvat tilanteet ovat sellaisia missä sitä assemberia tarvitaan pari riviä onnistuu juurikin elegantisti kuten kerroin C:stä kutsumalla koska ne eksoottiset tilanteet missä sitä assembleria tarvitaan liittyvät laiteläisiin juttuihin mitä C:llä tehdään, kuten laiteajureita.

Sitten sinä alat selittää jostain suorituskykyasioista, ikäänkuin käsin assemblerin kirjoittaminen toisi sitä suorituskykyä mikä vihjaa siihen, että olet jumahtanut johonkin 90-luvulle.
M-Kar kirjoitti:
Osaan alkeet. Kyse on assembler koodin kutsumisesta ja herran vuonna 2018 assembleria ei käytännössä ole juuri missään. Ne harvat tilanteet ovat sellaisia missä sitä assemberia tarvitaan pari riviä onnistuu juurikin elegantisti kuten kerroin C:stä kutsumalla koska ne eksoottiset tilanteet missä sitä assembleria tarvitaan liittyvät laiteläisiin juttuihin mitä C:llä tehdään, kuten laiteajureita.

Sitten sinä alat selittää jostain suorituskykyasioista, ikäänkuin käsin assemblerin kirjoittaminen toisi sitä suorituskykyä mikä vihjaa siihen, että olet jumahtanut johonkin 90-luvulle.
"Osaan alkeet."
No et varmasti osaa, älä valehtele.
Puhu paskaa, vänkäilet taas asiat päin vittua kun niitä ymmäärä ollenkaan.
M-Kar kirjoitti:
Osaan alkeet. Kyse on assembler koodin kutsumisesta ja herran vuonna 2018 assembleria ei käytännössä ole juuri missään. Ne harvat tilanteet ovat sellaisia missä sitä assemberia tarvitaan pari riviä onnistuu juurikin elegantisti kuten kerroin C:stä kutsumalla koska ne eksoottiset tilanteet missä sitä assembleria tarvitaan liittyvät laiteläisiin juttuihin mitä C:llä tehdään, kuten laiteajureita.

Sitten sinä alat selittää jostain suorituskykyasioista, ikäänkuin käsin assemblerin kirjoittaminen toisi sitä suorituskykyä mikä vihjaa siihen, että olet jumahtanut johonkin 90-luvulle.
Saatana jätkä on luuhannut näillä sivuilla kymmenen vuotta, eikä ikinään ole nähty minkään laista näytettä osaamisesta. Ilkeää moinen paskahousu vielä sanoa osaavansa.
HYI HITTO MIKÄ KUSIPÄÄ.
M-Kar kirjoitti:
Osaan alkeet. Kyse on assembler koodin kutsumisesta ja herran vuonna 2018 assembleria ei käytännössä ole juuri missään. Ne harvat tilanteet ovat sellaisia missä sitä assemberia tarvitaan pari riviä onnistuu juurikin elegantisti kuten kerroin C:stä kutsumalla koska ne eksoottiset tilanteet missä sitä assembleria tarvitaan liittyvät laiteläisiin juttuihin mitä C:llä tehdään, kuten laiteajureita.

Sitten sinä alat selittää jostain suorituskykyasioista, ikäänkuin käsin assemblerin kirjoittaminen toisi sitä suorituskykyä mikä vihjaa siihen, että olet jumahtanut johonkin 90-luvulle.
Sellainen joka oikeasti osaa, sen on helppo liittää esimerkkejä kirjoitustensa tueksi. Selainen kuin sinä joka ei mitään osaa, joutuu koko ajan valehtelmaan osaavansa sitä ja tätä, mutta mitään näyttö ei pysty antamaan.
VITTU MIKÄ VALEHTELIJA
Turbo-Urpo1 kirjoitti:
"Osaan alkeet."
No et varmasti osaa, älä valehtele.
Puhu paskaa, vänkäilet taas asiat päin vittua kun niitä ymmäärä ollenkaan.
"No et varmasti osaa, älä valehtele."

Tietysti osaan. Hinkkasin assembleria silloin 25v sitten ja sen jälkeenkin.

Sitten opin että siihen ei kannata koskea pitkällä tikullakaan.

"Saatana jätkä on luuhannut näillä sivuilla kymmenen vuotta, eikä ikinään ole nähty minkään laista näytettä osaamisesta. Ilkeää moinen paskahousu vielä sanoa osaavansa."

Laitoin pyynnöstä pätkän React koodia tänne ja olitkohan sitten sinä joka alkoi lässyttää että olisi kopioitu vaikka omin kätösin naputtelin sen.

"Sellainen joka oikeasti osaa, sen on helppo liittää esimerkkejä kirjoitustensa tueksi. "

Mihin ongelmaan nyt tarvitset sitten Haskell esimerkkiä? Tai edes C?
Turbo-Urpo1 kirjoitti:
Saatana jätkä on luuhannut näillä sivuilla kymmenen vuotta, eikä ikinään ole nähty minkään laista näytettä osaamisesta. Ilkeää moinen paskahousu vielä sanoa osaavansa.
HYI HITTO MIKÄ KUSIPÄÄ.
Mielipiteet ovat aina arvokkaita mutta niitäkin arvokkaampaa on jokaisen oikeus tulla kohdelluksi kunnioituksella. Mietitään vähän mitä sanotaan, ja miten. #pienipalarakkautta
M-Kar kirjoitti:
"No et varmasti osaa, älä valehtele."

Tietysti osaan. Hinkkasin assembleria silloin 25v sitten ja sen jälkeenkin.

Sitten opin että siihen ei kannata koskea pitkällä tikullakaan.

"Saatana jätkä on luuhannut näillä sivuilla kymmenen vuotta, eikä ikinään ole nähty minkään laista näytettä osaamisesta. Ilkeää moinen paskahousu vielä sanoa osaavansa."

Laitoin pyynnöstä pätkän React koodia tänne ja olitkohan sitten sinä joka alkoi lässyttää että olisi kopioitu vaikka omin kätösin naputtelin sen.

"Sellainen joka oikeasti osaa, sen on helppo liittää esimerkkejä kirjoitustensa tueksi. "

Mihin ongelmaan nyt tarvitset sitten Haskell esimerkkiä? Tai edes C?
Niin sinä olet kymmenen vuotta vakuutellut tehneesi vaikka mitä silloin 25 vuotta sitten, minkäänlaista näyttö et ole pystynyt antamaan. Ainut mitä voi sata varmasti todeta, että olet valehdellut, valehdellut ja valehdellut ummet lammet. Mutta näinhän se menee, jollakin tavoin sitä jokainen yrittää tarjota mielikuvaa omista taidoistaan.

Toiset tekee — toiset vain sanoo tehneensä — jopa 25 vuotta — pahimmat valehtelijat.

Se tässä on kurjinta että nämä jotka sanoo tehneensä, koittavat kaikin tavoin kyseenalaistaa näiden osaajien näyttöä, valhtelemalla, vääristellen asioita.
Turbo-Urpo1 kirjoitti:
Niin sinä olet kymmenen vuotta vakuutellut tehneesi vaikka mitä silloin 25 vuotta sitten, minkäänlaista näyttö et ole pystynyt antamaan. Ainut mitä voi sata varmasti todeta, että olet valehdellut, valehdellut ja valehdellut ummet lammet. Mutta näinhän se menee, jollakin tavoin sitä jokainen yrittää tarjota mielikuvaa omista taidoistaan.

Toiset tekee — toiset vain sanoo tehneensä — jopa 25 vuotta — pahimmat valehtelijat.

Se tässä on kurjinta että nämä jotka sanoo tehneensä, koittavat kaikin tavoin kyseenalaistaa näiden osaajien näyttöä, valhtelemalla, vääristellen asioita.
"Niin sinä olet kymmenen vuotta vakuutellut tehneesi vaikka mitä silloin 25 vuotta sitten, minkäänlaista näyttö et ole pystynyt antamaan."

Laitoin tänne React sovelluksen esimerkiksi, eli on näyttöä.

Minä en aio jakaa esimerkkejä 25v takaisista asioista. Nykyään saa asiat tehtyä paremmin kuin 25v sitten.

"Se tässä on kurjinta että nämä jotka sanoo tehneensä, koittavat kaikin tavoin kyseenalaistaa näiden osaajien näyttöä, valhtelemalla, vääristellen asioita."

Mitä valehtelen ja vääristelen? Sanoin totuuden assemblerista.
M-Kar kirjoitti:
"Niin sinä olet kymmenen vuotta vakuutellut tehneesi vaikka mitä silloin 25 vuotta sitten, minkäänlaista näyttö et ole pystynyt antamaan."

Laitoin tänne React sovelluksen esimerkiksi, eli on näyttöä.

Minä en aio jakaa esimerkkejä 25v takaisista asioista. Nykyään saa asiat tehtyä paremmin kuin 25v sitten.

"Se tässä on kurjinta että nämä jotka sanoo tehneensä, koittavat kaikin tavoin kyseenalaistaa näiden osaajien näyttöä, valhtelemalla, vääristellen asioita."

Mitä valehtelen ja vääristelen? Sanoin totuuden assemblerista.
Toisten tekemien kopiointi ja sen esittely omana aikaansaannoksenaan ei todista mitään. Jos haluat näyttää että oikeesti osaat jotain tehdä jollakin ohjelmointi kielellä, niin voitaisiin kokeilla ja vertailla aikaan saannoksia sellaisen ohjelma puitteissa, joka noutaa suomi24 sivuilta kaikki M-Kar tunnuksin kirjoitetut paskat.

Vielä saatana kyselee — "mitä minä valehtelen"
Kirjota se nyt millä osaat, ja minä kirjoitan jollakin niistä kielistä jolla sen nopeitten saan suoritetuksi. Tämä on sellainen tehtävä että kumpikaan ei löydä verkosta toisen tekemää valmiina eikä edes mitään sen suuntaista muutellakseen sen sitten omiin nimiin. Tässä ei kusettaja selviä, mutta minä arvaan jo edeltäkäsin miten tässä käy — paskanpuhuja vetäytyy jollakin tekaistulla verukkeella pois, kun ei vaan osaa mitään muuta kuin valehdella.
Turbo-Urpo1 kirjoitti:
Toisten tekemien kopiointi ja sen esittely omana aikaansaannoksenaan ei todista mitään. Jos haluat näyttää että oikeesti osaat jotain tehdä jollakin ohjelmointi kielellä, niin voitaisiin kokeilla ja vertailla aikaan saannoksia sellaisen ohjelma puitteissa, joka noutaa suomi24 sivuilta kaikki M-Kar tunnuksin kirjoitetut paskat.

Vielä saatana kyselee — "mitä minä valehtelen"
Kirjota se nyt millä osaat, ja minä kirjoitan jollakin niistä kielistä jolla sen nopeitten saan suoritetuksi. Tämä on sellainen tehtävä että kumpikaan ei löydä verkosta toisen tekemää valmiina eikä edes mitään sen suuntaista muutellakseen sen sitten omiin nimiin. Tässä ei kusettaja selviä, mutta minä arvaan jo edeltäkäsin miten tässä käy — paskanpuhuja vetäytyy jollakin tekaistulla verukkeella pois, kun ei vaan osaa mitään muuta kuin valehdella.
Jäiköhän tuohon porsaan reikä joka mahdollistaa hakea nuo tiedot rekisteröityneen omasta kirjoitushistoriasta suoraan, en omista tiliä niin en tunne onko tuo mahdollista, joten on syytä vaihtaa tuon hakemisen kohdetta, sellaisiin M-Kar viesteihin jotka on kirjoitettu ei sisään kirjautunut M-Kar tai mahdollisesti vale M-Kar joka vain on esiintynyt M-Kar nimellä kirjoittaessaan.
Turbo-Urpo1 kirjoitti:
Toisten tekemien kopiointi ja sen esittely omana aikaansaannoksenaan ei todista mitään. Jos haluat näyttää että oikeesti osaat jotain tehdä jollakin ohjelmointi kielellä, niin voitaisiin kokeilla ja vertailla aikaan saannoksia sellaisen ohjelma puitteissa, joka noutaa suomi24 sivuilta kaikki M-Kar tunnuksin kirjoitetut paskat.

Vielä saatana kyselee — "mitä minä valehtelen"
Kirjota se nyt millä osaat, ja minä kirjoitan jollakin niistä kielistä jolla sen nopeitten saan suoritetuksi. Tämä on sellainen tehtävä että kumpikaan ei löydä verkosta toisen tekemää valmiina eikä edes mitään sen suuntaista muutellakseen sen sitten omiin nimiin. Tässä ei kusettaja selviä, mutta minä arvaan jo edeltäkäsin miten tässä käy — paskanpuhuja vetäytyy jollakin tekaistulla verukkeella pois, kun ei vaan osaa mitään muuta kuin valehdella.
"Toisten tekemien kopiointi ja sen esittely omana aikaansaannoksenaan ei todista mitään."

En tietenkään kopioi toisten tekemisiä. Jos sellaista väität niin todista.

Et onnistunut viimeeksikään todistamaan etkä onnistu nytkään koska puhut paskaa.

"Kirjota se nyt millä osaat, ja minä kirjoitan jollakin niistä kielistä jolla sen nopeitten saan suoritetuksi."

Ennemmin mittaa aikaa kuinka nopeasti ohjelma toimii 32-ytimen CPU:lla ja joku tarpeeksi yksinkertainen ongelma ja referenssi että voi verrata tuloksia. Sinä kun sen assemblerin puolesta hehkutit niin ota sinä se niin minä teen vaikka Haskellilla.

Raytraceri vaikka. Voidaan ottaa referenssiksi joku eri kielellä toteutettu simppeli muutaman rivin implementaatio. Tässä aika hyvä Microsoftilta: https://codepen.io/Zbeyer/pen/MewYoW

Lisää vaan resoa että tulee enemmän prosessoitavaa niin saa helposti mittailtua aikoja. Olen melko vakuuttunut että nykypäivän välineet optimoi paremmin kuin ihminen. Rajoitteena olisi hyvä pitää sitä että on CPU:lla että ei kuseteta GPU:lla, etenkin kun aloit urputtamaan säikeistyksestä.
Turbo-Urpo1 kirjoitti:
Jäiköhän tuohon porsaan reikä joka mahdollistaa hakea nuo tiedot rekisteröityneen omasta kirjoitushistoriasta suoraan, en omista tiliä niin en tunne onko tuo mahdollista, joten on syytä vaihtaa tuon hakemisen kohdetta, sellaisiin M-Kar viesteihin jotka on kirjoitettu ei sisään kirjautunut M-Kar tai mahdollisesti vale M-Kar joka vain on esiintynyt M-Kar nimellä kirjoittaessaan.
"Jäiköhän tuohon porsaan reikä joka mahdollistaa hakea nuo tiedot rekisteröityneen omasta kirjoitushistoriasta suoraan, en omista tiliä niin en tunne onko tuo mahdollista, joten on syytä vaihtaa tuon hakemisen kohdetta"

En lähde tuollaiseen hakemiseen koska se tekee valtavasti kuormaa palvelimelle kun ei nähtävästi ole mitään API:a millä kantaqueryllä saisi vaan olisi joku crawleri kun kiertäisi läpi koko viestihistoriaa sivulatauksilla.

Peräti mahdollista että palvelin konffattu niin että tulee automaattisesti IP blockki jos pommitetaan HTTP kyselyjä jostain täyslaidalla ihan siksi että torjutaan palvelinestohyökkäyksiä.
M-Kar kirjoitti:
"Toisten tekemien kopiointi ja sen esittely omana aikaansaannoksenaan ei todista mitään."

En tietenkään kopioi toisten tekemisiä. Jos sellaista väität niin todista.

Et onnistunut viimeeksikään todistamaan etkä onnistu nytkään koska puhut paskaa.

"Kirjota se nyt millä osaat, ja minä kirjoitan jollakin niistä kielistä jolla sen nopeitten saan suoritetuksi."

Ennemmin mittaa aikaa kuinka nopeasti ohjelma toimii 32-ytimen CPU:lla ja joku tarpeeksi yksinkertainen ongelma ja referenssi että voi verrata tuloksia. Sinä kun sen assemblerin puolesta hehkutit niin ota sinä se niin minä teen vaikka Haskellilla.

Raytraceri vaikka. Voidaan ottaa referenssiksi joku eri kielellä toteutettu simppeli muutaman rivin implementaatio. Tässä aika hyvä Microsoftilta: https://codepen.io/Zbeyer/pen/MewYoW

Lisää vaan resoa että tulee enemmän prosessoitavaa niin saa helposti mittailtua aikoja. Olen melko vakuuttunut että nykypäivän välineet optimoi paremmin kuin ihminen. Rajoitteena olisi hyvä pitää sitä että on CPU:lla että ei kuseteta GPU:lla, etenkin kun aloit urputtamaan säikeistyksestä.
Mitäs minä sanoin — paskanpuhuja vetäytyy jollakin tekaistulla verukkeella pois, kun ei vaan osaa mitään muuta kuin valehdella.
Turbo-Urpo1 kirjoitti:
Mitäs minä sanoin — paskanpuhuja vetäytyy jollakin tekaistulla verukkeella pois, kun ei vaan osaa mitään muuta kuin valehdella.
"Mitäs minä sanoin — paskanpuhuja vetäytyy jollakin tekaistulla verukkeella pois, kun ei vaan osaa mitään muuta kuin valehdella. "

Negatiivisen väitteen esittäjällä on todistustaakka. Et ole todistanut kopiontia joten puhut paskaa.
M-Kar kirjoitti:
"Mitäs minä sanoin — paskanpuhuja vetäytyy jollakin tekaistulla verukkeella pois, kun ei vaan osaa mitään muuta kuin valehdella. "

Negatiivisen väitteen esittäjällä on todistustaakka. Et ole todistanut kopiontia joten puhut paskaa.
En usko että on olemassa ketään joka sinulle rupeaa todistelemaan yhtään mitään, sinä et ole puheittesi vuoksi sen arvoinen — jos tietotaitosi yltäisi noin normaalin älyn omaavan tasolle, asia voisi olla toisin.
Turbo-Urpo1 kirjoitti:
En usko että on olemassa ketään joka sinulle rupeaa todistelemaan yhtään mitään, sinä et ole puheittesi vuoksi sen arvoinen — jos tietotaitosi yltäisi noin normaalin älyn omaavan tasolle, asia voisi olla toisin.
"En usko että on olemassa ketään joka sinulle rupeaa todistelemaan yhtään mitään"

Tämä todistaa, että kyse on paskanpuhujasta jos ei kykene todistamaan väitteitään.

"jos tietotaitosi yltäisi noin normaalin älyn omaavan tasolle, asia voisi olla toisin. "

Minun tietotaitoni on joko normaali ja sinun merkittävästi normaalia alhaisempi. Tai sitten älyni on merkittävästi normaalia suurempi.

Joka tapauksessa sinulla ei kompetenssi riitä ja olet osaamiselta ja älyltäsi niin kovasti jäljessä että et edes ymmärrä samoja asioita.

Aloit länkyttämään jotain HTML API perusasiaa vastaan. Todistettavasti HTML:n kuuluu API: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5

Katsos kun minä todistan mitä väitän, sinä et.
M-Kar kirjoitti:
"En usko että on olemassa ketään joka sinulle rupeaa todistelemaan yhtään mitään"

Tämä todistaa, että kyse on paskanpuhujasta jos ei kykene todistamaan väitteitään.

"jos tietotaitosi yltäisi noin normaalin älyn omaavan tasolle, asia voisi olla toisin. "

Minun tietotaitoni on joko normaali ja sinun merkittävästi normaalia alhaisempi. Tai sitten älyni on merkittävästi normaalia suurempi.

Joka tapauksessa sinulla ei kompetenssi riitä ja olet osaamiselta ja älyltäsi niin kovasti jäljessä että et edes ymmärrä samoja asioita.

Aloit länkyttämään jotain HTML API perusasiaa vastaan. Todistettavasti HTML:n kuuluu API: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5

Katsos kun minä todistan mitä väitän, sinä et.
Niin todistit, mutta vain tyhmyytesi syvyyden, et muuta.
+Lisää kommentti
<lainaus>
"C -kielessä ei esim. ole lainkaan mahdollisuutta automaattisiin indeksitarkistuksiin,
Objectpascalissa ne saa päälle ohjauslauseella {$R+}"

Indeksien tarkistus kertoo siitä, että koodi on virhealtista koska sehän tarkoittaa, että ohjelmassa tallennetaan tilaa indekseihin.
</lainaus>

M-Kar sekoilee jälleen!

Ensisijainen tapa estää puskurin ylivuodot / kirjoitus taulukkoon tai luku taulukosta asiallisen indeksialueen ulkopuolella on tietenkin: Se, että koodataan huolellisesti niin, että käytetyt indeksit ovat oikeita.

Delphin ja FreePascalin selkeä syntaksi auttaa tässä!

selkeä syntaksi = vähemmän haittatekijöitä, jotka vievät ohjelmoijan huomion pois olennaisesta, ja siten kasvattavat mahdollisuuksia tehdä virheitä C -kielen tapaan.

Se, että C -kieltä on paljon käytetty systeemiohjelmoinnissa EI millään tavalla tee C -kielestä hyvää systeemiohjelmointityökalua. Myös systeemiohjelmointiin esim. FreePascal on parempi vaihtoehto.

Entä ne indeksitarkistukset?

Ne EIVÄT OLE tarkoitettu huolellisen ohjelmointityön korvikkeeksi, näin ollen niiden käyttäminen ei millään tavalla tee koodista virhealtista, kunhan perusasia eli huolellinen ohjelmointityö tehdään oikein.

Sensijaan niiden indeksitarkistusten idea onkin tämä:

JOS ohjelmoija on pyrkinyt tekemään huolellista ohjelmointityötä, mutta on mokannut tässä, tällöin tulee esille indeksitarkistukset päällä käännetyn ObjectPascal -koodin paremmuus verrattuna esim. C -kielellä tehtyyn koodiin:

C -kielellä tehdyssä koodissa virhe taulukon viittauksessa kielletyllä (eli liian pienellä / liian suurella) indeksillä aiheuttaa suoraan puskurin ylivuodon (kirjoitus: hyökkääjä voi työntää omaa koodiaan tietojärjestelmän suoritettavaksi; luku: hyökkääjä voi luke tietoja, joihin hänellä ei ole oikeutta, eli esim. vakoilla salasanoja, salausavaimia, luottokorttinumeroita jne.)

ObjectPascal -koodissa, joka on käännetty indeksitarkistukset päällä,
jos ohjelma yrittää viitata kiellettyyn indeksiin taulukossa (mikä on tietenkin ohjelmointivirhe, joka pitää korjata niin pian kuin mahdollista), niin tästä aiheutuu poikkeus ERangeCheckError, ja em. poikkeus aiheutuu ENNEN KUIN väärää muistiosoitetta luetaan tai sinne kirjoitetaan.

Eli indeksitarkistukset estävät väärän muistiviittauksen ja aiheuttavat poikkeuksen.

Siis ne 2 kaikista pahinta vaihtoehtoa, eli joko:

a) se. että hyökkääjä pääsisi työntämään omaa konekielikoodiaan järjestelmän ajettavaksi

tai

b) se, että hyökkääjä pääsisi asiattomasti lukemaan salaisia tietoja, joiden ei pitäisi olla hänen saatavillaan

on molemmat automattisesti estetty indeksitarkistukset päällä käännetyssä Objectpascalissa.

Tämä on merkittävä etu esim. C -kieleen verrattuna.

mm. HeartBleed -haavoittuvuus on selainen, että jos OpenSSL olisi tehty Objectpascalilla ja indeksitarkistukset päällä eikä C -kielellä, niin tuota HeartBleed -haavoittuvuutta ei olisi koskaan tapahtunut.

Toki, jos OpenSSL olisi koodattu Objectpascalilla ja indeksitarkistukset päällä, mutta jos ohjelmoija muuten olisi tehnyt saman mokan kuin C-kielellä ohjelmoinut koodaaja teki,
niin vaikka tuota pahinta ei olisikaan tällöin tapahtunut, niin jatkuvat
ERangeCheckError -poikkeukset toki silti mahdollistaisivat palvelunestohyökkäyksen (mutta eivät tietojen varastamista eikä rikollista haittakoodin suorittamista).

Eli kuten esimerkistä näemme, niin nuo indeksitarkistukset kyllä estävät ne 2 pahinta vaihtoehtoa, mutta ne eivät ole korvike huolelliselle ohjelmointityölle, vaan ne ovat hätävara, joka estää ohjelmointivirheen muuttumisen täydelliseksi katasttrofiksi.

Jos siis ohjelmassa havaitaan virhe, niin ko. virhe on aina syytä korjata.

On käsittämätöntä, ettei ohjelmoinnissa ole ollut tapana vaatia samaa korkeaa laatutasoa kuin muilla teollisuuden aloilla.

Tähän olisi syytä tulla muutos, ja ObjectPascal on parhaita kielivalintoja laadukkaan lopputuloksen aikaansaamiseksi.
1 VASTAUS:
Ei mennä nyt johonkin hardware-tason käyttöjärjestelmän sisäisiin toimintoihin, eikä aivan näin emolevyjenkään DMA-muistisiirtoihin, ehkä _D

Ihan sama mikä salaus onkaan, jos pelataan emolevyn ja komponenttien välisillä tiedonsiirroilla aivan suoraan ilman mitään softaa, pelkästään kun käynnistän ohjelman nimellä "debug", siitä alat tekemään assembly-kieltä itse ;D
+Lisää kommentti
At%T syntaksi oli jonka linuksi otti omakseen, itse muka keksi _D_D

Eräs juttu on mielenkiintoinen, kun siirrellään ohjelmakoodia grafiikkaprosessorin muistiin, aina pitää käyttää DMA-siirtoa fyysisten muistien välillä, ja DMA-kanavat 0-3 ovat tuollaisia nopeita kanavia joille vai laittaa "tilaukseen muistisiirtoja", koodeja tai mitä nyt sitten haluaa..

Tietysti vaatii järjestelmänsuunnittelijan oikeudet, sitten tuollaisten tekeminen...
1 VASTAUS:
"At%T syntaksi oli jonka linuksi otti omakseen, itse muka keksi _D_D"

Onko tämä taas sarjassaamme "valeuutisia"?
+Lisää kommentti
Apinat roikkuu puussa nurinkurin...
1 VASTAUS:
Aivan näin: AT&T assembly syntaksi on juurikin näin eli toisin kuin Intelin syntaksissa kohteet mihin laitetaan mitäkin juttuja ;)
+Lisää kommentti
Luinko väärin vai luinko uskomattomasti, ettei kukaan maininnut NASM:ia ?

Asenna NASM Linuxiin, niin saat lähes MASM/TASM (Intel syntaksilla ) tyylillä tehtyä hommat
5 VASTAUSTA:
Ethän sinä väärin lukenut, näin pääsi tapahtumaan, mutta pistin gitlab.com sivulle leikkeen jossa kerron kuinka asennetaan ja kuinka käännetään esimerkkiohjelma.
https://gitlab.com/snippets/1772811

Luotu ja testattu Linux Mint 19 Xfce 64-bit ympäristössä toimivaksi.
Turbo-Urpo1 kirjoitti:
Ethän sinä väärin lukenut, näin pääsi tapahtumaan, mutta pistin gitlab.com sivulle leikkeen jossa kerron kuinka asennetaan ja kuinka käännetään esimerkkiohjelma.
https://gitlab.com/snippets/1772811

Luotu ja testattu Linux Mint 19 Xfce 64-bit ympäristössä toimivaksi.
Oikein luit. Hienon ohjeenkin laitoit

Tosin olen kyllä utelias tietämään että missä ihmeessä porukka käyttää näitä vielä? Kuitenkin se assembler oli 90-luvulla jo lähinnä erikoistilanteisiin.
Turbo-Urpo1 kirjoitti:
Ethän sinä väärin lukenut, näin pääsi tapahtumaan, mutta pistin gitlab.com sivulle leikkeen jossa kerron kuinka asennetaan ja kuinka käännetään esimerkkiohjelma.
https://gitlab.com/snippets/1772811

Luotu ja testattu Linux Mint 19 Xfce 64-bit ympäristössä toimivaksi.
Mitä toi ohjelma tekee?
Mountaako se usb tikun johonkin tiedostojärjestelmään?
99-turhaa kirjoitti:
Mitä toi ohjelma tekee?
Mountaako se usb tikun johonkin tiedostojärjestelmään?
Sikäli mikäli tikku ei ole täynnä piraatti musiikkia.
Turbo-Urpo1 kirjoitti:
Sikäli mikäli tikku ei ole täynnä piraatti musiikkia.
mount(muuttuja, "tiedetään-ennalta", "tiedetään-ennalta", 0, 0);

Ja monet käyttää initrd / initramfs:iin busyboxin mounttii joka muka pieni ohjelma...
+Lisää kommentti

Vastaa alkuperäiseen viestiin

tasm/masm tyylillä linuxissa?

Linuxin käyttämä assembler on käytännössä estänyt assemblerin lisäopiskelun hankaluutensa tähden. Nyt kysynkin, että onko mahdollista käyttää Borlandin tyyliä linuxissa? Entä onko jossain jotain nettikurssia, josta saisi kickstarttia opiskeluun? Viimeksi kai tehnyt vuonna miekka ja kypärä ms-dos aikana ruudulle tulostavan pelin assemblerilla..

5000 merkkiä jäljellä

Peruuta