Vergadertaal: Hoe om vandag die vergadering te kodeer

openbaarmaking: U ondersteuning help om die webwerf aan die gang te hou! Ons verdien ‘n verwysingsfooi vir sommige van die dienste wat ons op hierdie bladsy aanbeveel.


‘N Samestellingstaal is ‘n uiters lae vlak programmeringstaal met ‘n 1-tot-1-korrespondensie met masjienkode – die reeks binêre instruksies wat waardes in en uit registers in ‘n SVE (of ander mikroverwerker) beweeg.

inleiding

‘N Mikroverwerker is ‘n meganiese sakrekenaar. Dit bevat ‘n aantal genoemde registers, soos om penne vir syfers te hou. Dit ontvang instruksies in die vorm van masjienkode, wat voorgestel word deur ‘n reeks binêre stukkies (1s en 0s). Hier is byvoorbeeld ‘n reël masjienkode:

10110000 01100001

Die eerste paar stukkies (10110) is ‘n instruksie om ‘n waarde in ‘n register te kopieer. Die volgende drie syfers (000) identifiseer die register waarin die waarde gekopieër sal word. Die res daarvan (01100001) is die waarde wat gekopieer moet word.

Natuurlik is 10110 betekenisloos, en die rekenaar weet nie dat dit “kopieer die waarde” beteken nie. Die verwerker is so ontwerp dat die reeks elektriese impulse wat deur 10110 (on-off-on-on-off) voorgestel word, die gewenste resultaat tot gevolg het. Dit is deel van wat bedoel word met “meganiese”.

As u nou ‘n program gaan skryf vir die verwerker wat uitgevoer word, kan u uself voorstel dat duisende reëls 1s en 0s geskryf word, dit is vervelig en foutief. Die oplossing is samestellingstaal. Vergadertaal bied menslike verstaanbare vervangings vir lang snare binêre kode.

voorbeeld

Byvoorbeeld, as 10110 ‘beweeg die waarde’ beteken, dan kan ons dit met die MOV-opdrag verkort.

Ons kan ook die 000-register ‘n makliker naam gee om te onthou (in hierdie geval word die register AL genoem).

Uiteindelik kan ons die waarde in ‘n ander nommeringstelsel, soos desimale (91) of heksidesimale (61), weergee. Daardie reël sou dan MOV AL, 61 wees. Sodra ‘n hele program op hierdie manier geskryf is, kan ‘n samesteller elke reël maklik in die toepaslike binêre voorstelling vertaal.

Rekenaars doen werk (doen berekeninge, skuif data, transformeer data) deur miljarde van hierdie klein instruksies per sekonde te verwerk.

Baie eenvoudige instruksies (skuif hierdie waarde, kopieer die waarde, voeg hierdie twee waardes bymekaar en stoor die waarde daarbo) kombineer om komplekse bewerkings te vorm, wat op hoër en hoër vlakke saamwerk om dinge te doen wat u as betekenisvol sou erken.

Taalhulpbronne vir samestelling

Aanlynhulpbronne

Tutoriale en basiese gidse

  • Vergaderprogrammeringstutoriaal vanaf Tutorials Point

  • X86 Assembly Language Programming, ‘n hoofstuk uit die FreeBSD Developers ‘Handbook, wat help om die skryf van monteringstale in die konteks van die bestuur van stelselbestuur

  • Sê Hallo aan X64 Assembly, ‘n redelike sagte inleiding tot montering, vanuit die Code as Art-blog

  • X86 Assembly Language Programming, ‘n ander tutoriaal wat monteringstaal goed in sy OS-programmeringskonteks plaas, hierdie met verwysing na Linux, Windows en selfs ‘n bietjie oor Mac OS X

  • PC Assembly Language, dit fokus op 32-bis-rekenaars met Linux, Windows of FreeBSD

  • X86 Vergaderingsgids, van die departement rekenaarwetenskap van die Universiteit van Virginia

  • Webster: self beskou as “Die plek op die internet om samestellingstaal te leer”. Hierdie webwerf word (blykbaar) bestuur deur die skrywer van The Art of Assembly Language en die uitvinder van HLA

  • Linux-byeenkoms-handleiding

  • Maklik X86-64

  • X86 Vergadering

  • Windows Vergaderingsprogrammeringstutoriaal (pdf)

Video-tutoriale

  • Assemblage Language Programming Tutorial, ‘n baie deeglike 55-video-reeks oor montering, gevolg van die boek Assembly Language for x86 Processors (6de uitgawe) deur Kip Irvine (as u nie die video’s volg nie, sal u waarskynlik die meer onlangse uitgawe hê)

  • Assembly Language Programming Video Course, ‘n 70-delige videoreeks, geleer deur Arthur Griffith, wat ‘n baie lekkerste sjarme het

  • Assembly Language Intro, ‘n lesing in die klaslokaal by Cornell, waarin monteringstaal bekendgestel word

  • Vergaderingstaalprogrammering, ‘n uurlange inleiding tot samestelling, en ‘n wonderlike formaat as u regtig daarvan hou om voorbeelde van algebra op ‘n oorhoofse projektor te volg toe u op hoërskool was (dit is deel van ‘n groter reeks mikroverwerkers en mikrobeheerders).

verwysing

  • X86 instruksielys, volledige lys van alle instruksies vir die x86-argitektuur, met aantekeninge oor wanneer elk bygevoeg is

  • X86 Opcode en instruksieverwysing

  • Intel X86-samestelling taalbedrog (pdf).

gereedskap

Vergaderers – daar is baie monteerders beskikbaar – hier is ‘n paar van die gewildste gratis en open source monteerders:

  • NASM

  • FASM

  • YASM

  • GASM.

IDE’s (Geïntegreerde Ontwikkelingsomgewings):

  • SASM, eenvoudige kruisplatform IDE vir NASM, MASM, GAS, FASM monteringstale

  • Vars IDE, visuele monteringstaal IDE met ingeboude FASM-monteerder

  • WinAsm Studio, ‘n gratis IDE vir die ontwikkeling van 32-bis Windows- en 16-bit DOS-programme met behulp van die Assembler

  • Visuele MASM.

Gemeenskapsleer en deurlopende leer

  • Vergaderingsforum by Dream.In.Code

  • Die MASM Forum

  • Vergadertaal en masjienkode op Hack Forums

boeke

  • The Art of Assembly Language (aanlynuitgawe) is een van die gewildste boeke oor samestellingstaal, uit altyd leesbare No Starch Press; u sal miskien ook hierin van dieselfde skrywer wil belangstel: Skryf ‘n groot kode: Deel 1: Die masjien verstaan ​​en ‘n groot kode ‘skryf, Deel 2: Laag vlak dink, op hoë vlak skryf

  • Vergaderingtaal Stap vir stap: Programmering met Linux

  • Professionele vergaderingstaal

  • Vergadertaal vir x86 verwerkers

  • Moderne X86-samestelling taalprogrammering: 32-bis, 64-bit, SSE en AVX

  • ntroduksie tot 64-bits monteerprogrammering vir Linux en OS X: Derde uitgawe – vir Linux en OS X

  • Inleiding tot 80X86 samestellingstaal en rekenaarargitektuur

  • Vergadertaalprogrammering: vir rekenaar- en skootrekenaars.

Sou u samestellingstaal leer?

Of u samestelling moet leer, hang af van wat u doelstellings is. Vir die meeste ontwikkelaars is die antwoord “nee.”

Daar is twee primêre redes om samestelling te leer: omdat u dit direk wil gebruik, of omdat u rekenaars op ‘n fundamentele vlak wil verstaan..

Vanuit ‘n praktiese oogpunt gebruik slegs ‘n relatiewe handjievol ingenieurs en rekenaarwetenskaplikes wêreldwyd monteertaal.

Die oorgrote meerderheid sagteware-ontwikkeling, insluitend feitlik alle toepassingsontwikkeling van enige aard, gebruik programmeringstale op hoë vlak en nie monteringskode nie. Sommige spesifieke gebiede waar monteringstaal gebruik word, is:

  • Bedryfstelsels

  • firmware

  • Toestelbestuurders

  • Taalontwerp

  • Samesteller-ontwerp

  • Ingeboude stelsels

  • Hardeware-ontwerp

  • Gevorderde kriptografie

  • Teoretiese rekenaarwetenskap

Die ander rede om samestelling te leer is net om ‘n beter begrip te kry van wat eintlik in die ingewande van ‘n rekenaar aangaan. (Dit is waarom feitlik alle hoofwetenskappe in Rekenaarwetenskap samestellingstaal moet aanleer.)

Natuurlik, as u die soort persoon is wat regtig daarin belangstel, wil u miskien nadink oor ‘n loopbaan wat in lae-vlak stelselontwikkeling werk.

Ander dinge om te leer

Daar is ‘n paar tale waar, as jy net ‘n bietjie weet, jy baie kan doen. Python en Ruby is so – jy kan oor ‘n naweek genoeg leer om iets werd te bou. Vergaderingstaal is nie so nie.

Vergadertaal word nooit in ‘n vakuum gebruik nie. Die soort ingenieur wat die samestelling moet ken, werk waarskynlik in ‘n omgewing waar daar ‘n handvol ander vaardighede is om effektief te wees. Dit sluit waarskynlik die volgende in:

  • Hardeware tale, soos VHDL en Verilog, saam met ‘n goeie begrip van mikroverwerkers en elektriese ingenieurswese

  • Lae-vlak bedryfstelseltale soos C en sy afgeleides: C ++, C # en D

  • Legacy-tale soos Fortran en Cobol

  • Platformtale soos Java en Objektief-C

  • algoritmes

  • Komponist, tolk en taalontwerp.

Verdere leeswerk en bronne

Ons het baie meer inligting oor hierdie soort dinge, Programmering: Tale, Tydlyn & Guides.

Watter kode moet u leer??

Verward oor watter programmeringstaal u moet leer kodeer? Kyk na ons infografiese inligting oor watter kode u moet leer?

Dit bespreek nie net verskillende aspekte van die tale nie, dit beantwoord belangrike vrae soos: “Hoeveel geld sal ek vir die programmering van Java verdien?”

Watter kode moet u leer?
Watter kode moet u leer??

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map