Opetetaanko Assemblya vielä kouluissa tai joissain päin maailmaa

????????????????????

Vieläkö voi hakeutua kursseille jossa opetetaan Assemblyä? Ainakaan Viopessa, Edx, Mooc, eikä ensi vilkaisulla suomen missään koulussa kursseja ollut.

12

332

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 1or18

      Katsopa jotain 8-bittisiä ympäristöjä, kuten AVR tai PIC prosessoreille. Nuo ovat niin tehottomia C:llä, että monesti tarvitsee sitä assembleria käyttää. Yleensä se tehdään kääntämällä "gcc -c foo.c -o foo.o" asemesta "gcc -S foo.c -o foo.s", jolloin saadaan sen C-koodin ekvivalentti assembler näkyville. Sitä voi sitten muokata. Yleensä muokkaus tehdään inline-assemblerina, koska assembleria halutaan joka tapauksessa koodin sekaan mahdollisimman vähän sen huonon luettavuuden vuoksi. Usein mikrokontrolleri-kursseilla on mahdollista tehdä HW tai SW näkökanta asiaan, jolloin tuo "HW" käytännössä tarkoittaa kolvailua JA assembleria..

    • retlw_0x00

      Ei taideta opettaa vaikka pitäisi. Perustelen kantaani teknologiayrittäjänä, ja totean, että ASM on hyvin tehokasta koodia ja antaa etua ainakin aika- ja tilakriittisissä sovellutuksissa.

      Itse kirjoitetun koodin luettavuus on hyvä - vai mitä sanot tästä:

      start
      bsf STATUS,PA0 ; selects page 1
      movlw b'00110000' ; output GP4,5, input GP0-3 (gp3)
      tris GPIO

      flash
      movlw B'010000'
      movwf GPIO
      Call delay
      movlw B'100000'
      movwf GPIO
      Call delay
      goto flash

      delay
      clrf dtime ; delay subroutine, 2 ms
      loopx
      goto $ 1 ; 2c
      goto $ 1 ; 2c
      decfsz dtime ; 1c, decrement counter
      goto loopx ; 2c, back to top of loop
      retlw 0x00 ; 2c
      END ; directive 'end of program'

      • retlw_0x00

        ... ja S24 tuhosi formaatin, eli kannattaa katsoa esimerkkiä jostain muualta...


      • aaaargs

        Assemblerissa on se huono puoli että se on jokaiselle prossuarkkitehtuurille erilainen, en tiedä onko kovin hirveesti (mutua)? Vähä olis hankala kun opiskelisit ensin C-kieltä x86-prossulle ja ARM:lle koodatessa pitäisi opiskella uusi A-kieli ja koodi on huonosti siirrettävissä.


      • mc68020

        Miksi koodin pitäisi olla siirrettävissä?

        Järkevämpää on tehdä tehokasta koodia kuin miettiä miten sen saisi siirrettyä toiseen arkkitehtuuriin.


      • teknologiayrittäjä

        Nimenomaan, koodin suoritusaika, resurssitehokkuus ja toimivuus ovat tärkeämpiä tekijöitä. Se että saa kuraa helposti ei ole minkään arvoista.


      • adfafasf

        Ilman että konteksti on tiedossa on tuo rotla täysin lukukelvotonta. Kontekstin kanssa siitä ehkä pystyisi arvaamaan mitä se yrittää tehdä.

        99,999 % tapauksista ei "tehokkuudella" tai "resurssien käytöllä" ole minkään valtakunnan merkitystä, ja niissä jäljelle jääneissä 0,001 % on 99 % kyse siitä, että yritetään (joko pakosta tai huonon suunnittelun vuoksi) tehdä väärillä vehkeillä paskasta konvehtia.


      • "Perustelen kantaani teknologiayrittäjänä, ja totean, että ASM on hyvin tehokasta koodia ja antaa etua ainakin aika- ja tilakriittisissä sovellutuksissa."

        Laitahan vähän esimerkkiä sellaisesta aika- ja tilakriittisestä sovelluksesta.

        Jotta saisi vähän perspektiiviä asioihin niin 15€:lla saa jokun quad core tehomyllyn gigan muistilla.


      • mc68020 kirjoitti:

        Miksi koodin pitäisi olla siirrettävissä?

        Järkevämpää on tehdä tehokasta koodia kuin miettiä miten sen saisi siirrettyä toiseen arkkitehtuuriin.

        Koska arkkitehtuurit vaihtuvat vähän väliä mikä on milloinkin järkevää. Se on turhaa työtä tehdä arkkitehtuurista riippuvaista koodia jos sen voi mitenkään välttää kun ne arkkitehtuuririippuvaiset jutut joutuu sitten tekemään uudestaan.


      • teknologiayrittäjä kirjoitti:

        Nimenomaan, koodin suoritusaika, resurssitehokkuus ja toimivuus ovat tärkeämpiä tekijöitä. Se että saa kuraa helposti ei ole minkään arvoista.

        "Nimenomaan, koodin suoritusaika, resurssitehokkuus ja toimivuus ovat tärkeämpiä tekijöitä. Se että saa kuraa helposti ei ole minkään arvoista."

        Suoritusaika on sama vaikka tekisi C:llä koska kääntäjät optimoivat kunnolla ja jos siellä joku kellojakso menisikin laskentaan enemmän niin silläkään ei ole merkitystä suoritusajassa, koska CPU:n cachet ovat niin isoja, että niissä kuitenkin odotetaan muistihakuja. Nopeus on siis täysin sama.

        Toimivuus todennäköisesti on huonompi assemberilla hinkatessa koska riski bugeille kasvaa.


      • vink-vink
        retlw_0x00 kirjoitti:

        ... ja S24 tuhosi formaatin, eli kannattaa katsoa esimerkkiä jostain muualta...

        Tee       sisennys       s i t o v i l l a       välilyönneillä.


    • välillä_pitää_asmia

      Joskus nuo optimoinnit on todella ikäviä, esim. jotkut prosessorit vaatii bittitason operaatioita yhteen rekisteriin alustaessaan tiettyä tilaa tietyssä sekvenssissä - jos kääntäjä optimoi tämän yhdeksi muistivienniksi, homma ei pelaa. Tietysti se on HW:ltä huonoa toimintaa, mutta niin paljon helpompi korjata softaan. Toki nuo optimoinnit saa pois päältä, mutta kääntäjän version muuttuessa pragmat muuttuu - ja yllättäen optimoinnit voi olla taas käännöksen jälkeen päällä - vaikka toisin näyttäisi olevan! Tästä syystä assembler voi olla järkevä vaihtoehto.

    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Sanna Marin kysyi hämmästyneenä: Onko Suomessa jäänmurtajia?

      Nettilehden toimittaja kysyi Sanna Marinilta suoraan, että sovittiinko nuo jäänmurtajien kaupat jo 2019, jolloin Marin k
      Maailman menoa
      71
      3879
    2. Voiko normaali ihminen ryhtyä vasemmistolaiseksi?

      Tätä jäin pohdiskelemaan.
      Maailman menoa
      101
      3495
    3. SDP haluaa 40 000 nettomaahanmuuttajaa

      SDP:n Suunnanmuutos-vaihtoehtobudjetissa, käy ilmi, että demarit itse asiassa vaativat räjähdysmäistä ”työperäisen” maah
      Maailman menoa
      78
      3328
    4. Mikä tuota vasemmistolaisista jankkaavaa vaivaa?

      Pahasti on ihon alle, siis korvien väliin, päässeet kummittelemaan. Ei ole terveen ihmisen merkki jankata yhdestä asia
      Maailman menoa
      36
      2638
    5. Mitä ajattelit kun näit

      kaivattusi ensimmäisen kerran? xd
      Ikävä
      122
      1580
    6. Nyt meni lopulliset lämmöt.

      Alan käyttäytymään yhtä kylmästi miehiä kohtaan kuin mua kohtaan on käyttäydytty ja vain käytetty viimeiset pari vuotta
      Sinkut
      36
      1506
    7. Meitä ei tule

      Koska periaatteemme ovat rakkautta vahvempia. Tämä on siis koettelemus, jonka tarkoitus on vahvistaa meitä yksilöinä 😌
      Ikävä
      22
      1114
    8. Onko erityinen paikka jossa haluaisit nyt olla

      Onko joku spesiaali lempipaikka missä mieluiten olisit?
      Ikävä
      42
      1100
    9. Sulla on avaimet ja keinot

      Jos haluat jatkaa tutustumista. Itse olen niin jäässä etten pysty tekemään enää mitään. Pidempi keppi johon on helpompi
      Ikävä
      18
      1076
    10. Itseään kannattaa tarkastella realistisesti ja

      miettiä mihin ne rahkeet oikeesti riittää. Tyhmempikin ymmärtää että varakas ylemmän tason mies ei kelpuuta sellaista ku
      Ikävä
      118
      1016
    Aihe