Hieman tuli taas viihdytettyä itseä yrittämällä assemblerilla tehdä jotakin järkevää. DOS-aikana tämä tuntui olevan paljon helpompaa, kuin nykyään. Kunnes löysin tämän tällä kertaa linux:ssa(Ubuntu-Mate 16.04), mielenkiintoinen tuttavuus on netwide-assembler (nasm, näitä on muitakin samalla nimellä!). Ja tähän saa itse asiassa editorin(ohjelmointi ympäristön oikeastaan), joka tukee muitakin assemblereita, nimeltään sasm(Simple ASM). Hienoksi asian tekee se, että ympäristö tuottaa suoraan komentorivi-kelpoisia ohjelmia - kuten DOS aikaan - ja sisältää mm. makroja, joiden avulla hoitaa tulostuksia ja näppäimistön lukua yms. helposti. Makroja voi tehdä myös itse lisää.
Esimerkiksi ruudulle tulostus, esimerkkiohjelma:
%include "io64.c"
section .data
msg db 'Hello World!',0
section .text
global CMAIN
CMAIN:
PRINT_STRING msg
NEWLINE
xor rax,rax
ret
Käännökset voi tehdä sekä 32- että 64-bittisellä kääntäjällä eli ympäristön valinta on vapaa, mutta kääntäjä kyllä varoittaa, jos yrittää tehdä jotain em. valinnan vastaisesti.
Mitä hyötyä tästä sitten oli? No linkityksen voi jättää ja kääntää pelkän objekti-tiedoston, mitä voi sitten käyttää muissa kielissä melko vähällä vaivalla. Tämä on etu, koska inline-assembler on usein törkeän tökeröä kieliasultaan. Mieluummin sitten tekee kunnollisella assemblerilla, jos jotain pitää tehdä.
Esimerkiksi ruudulle tulostus, esimerkkiohjelma:
%include "io64.c"
section .data
msg db 'Hello World!',0
section .text
global CMAIN
CMAIN:
PRINT_STRING msg
NEWLINE
xor rax,rax
ret
Käännökset voi tehdä sekä 32- että 64-bittisellä kääntäjällä eli ympäristön valinta on vapaa, mutta kääntäjä kyllä varoittaa, jos yrittää tehdä jotain em. valinnan vastaisesti.
Mitä hyötyä tästä sitten oli? No linkityksen voi jättää ja kääntää pelkän objekti-tiedoston, mitä voi sitten käyttää muissa kielissä melko vähällä vaivalla. Tämä on etu, koska inline-assembler on usein törkeän tökeröä kieliasultaan. Mieluummin sitten tekee kunnollisella assemblerilla, jos jotain pitää tehdä.
Vastaukset 9
Vanhimmat
Raapusta silkkajaska mieluiten jonkun elektrolyyttikondensaattorin kylkeen ja heitä se Inarinjärveen,
Vieäkö tämä jannu, jolla on elkofiksaatio, on täällä? Ei ossa kirjoitella muusta kuin elkoistaan. Työnnä ne kondensaattorisi sinne, mihin päivä ei paista.
Tuo elkotyyppi on trollaamassa palstaa eli sille ei kannata vastailla. Korkeintaan laitat poistopyynnön viestistä. Mikä sekin on turhaa kun Suomi24 on kiinnostunut vain viestien lukumäärästä eikä sisällöstä.
Täällähän voi keskustella vaikka metroliikenteestä. Metrojunahan toimii sähköllä ja kuuluu kategoriaan elektroniikka. Kuten myös hiusten kampaaminen, ukonilma, katuvalaistus ja lukematon määrä eri asioita.
Eri asia sitten osaako jokainen näitä erotella tälle palstalle sopiviksi. Parempi tietysti kysellä täältä kuin 112:sta.
Ukkonenkin toimii sähköllä ja sisältää elektroneja. Hyvin sopii säätiedotkin tälle palstalle.
Kyllä muakin vituttaa puhelinkyselijät, ja aivan erityisesti ammattikoululaiset kansalaispoliisi-sisäjohtoasentaja, tukes-kommari-propagandallaan parantamassa maailmaa.
mut noi mikro-ohjaimien ohjelmointikielet must viel jotenki kuuluu elektroniikkaan. Ei riittää et tekee vaa hardiksen ympärille ja sitte mennää toiselle palstalle työntämään softa levylle
Meikä-
Rajan veto on kieltämättä hankala, mutta kallistun kanssa sille kannalle, että jotta ohjelmistokaverilla olisi kunnon API kehitetylle hardikselle, pitää low-level ohjelmointi(=firmware) olla tehtynä ainakin esimerkki-muodossa hw-kaverien toimesta. Tämä tarkoittaa tietysti sitä, että esitellään ne toimet - jos ei pystytä vaikka itse kirjoittamaan koodia valmiiksi API:ksi asti - jotkut puhuvat BIOS:sta tässä.
Esimerkkikoodissa voi olla yksittäisiä asioita, esim. miten muisti täytetään nollilla loopissa. Tästä sw-kaveri osaa jo nähdä, miten toteuttaa muistille malloc() funktio muistin varaamista varten. Ja sama tietysti vähän kaikessa, mitä on hw:llä kehitetty. Kutsuttakoon näitä esimerkkiohjelmia vaikkapa hw:n ohjelmistotesti -vektoreiksi. Vektori tulee siitä, että näistä voi koota matriisitestin(testimatriisin?), jota käytetään hw:n verifioinnissa. Laitteistosuunnittelun jälkeen tulevaahan tämä on, joten rajanveto varmaan tulee siitä, mitä kukakin projektissa on valmis tekemään tai osaa tehdä. HW-suunnittelijan vetämät muistirajat - esimerkiksi - kun voi olla hiukan hankala lukea piirilevyltä tai skemasta.
Ja välillä HW:kin on tehty SW:llä, kuten vhdl tai verilog - joten fyysinen konkretia ei ole sulautetussa elektroniikassa todellakaan se koko totuus. Ja pitäisin vhdl-toteutusta hardikselle kyllä niin vaativana asiana, että vaikka em. henkilö osaisikin sw-puolen hoitaa myös mikroprosessorilta päin katsottuna, niin siinä voi alkaa kyllä aika olemaan niin pahasti kortilla, ettei välttämättä enää ehdi.
Laseten bicia näyttää oleman aex konekoodia nähdykkään.
Keikai tuo ole suomeksi mitään konekielä eli assebleria. ei muuta.