Shromáždění jazyk: Jak se naučit kódovat shromáždění dnes

Zveřejnění: Vaše podpora pomáhá udržovat provoz webu! Za některé služby, které na této stránce doporučujeme, dostáváme poplatek za doporučení.


Sestavovací jazyk je extrémně nízkoúrovňový programovací jazyk, který má korespondenci 1: 1 se strojovým kódem – řada binárních instrukcí, které přesouvají hodnoty do a z registrů v CPU (nebo jiném mikroprocesoru).

Úvod

Mikroprocesor je mechanická kalkulačka. To má množství pojmenovaných registrů, které jsou jako držení pera pro čísla. Přijímá instrukce ve formě strojového kódu, který je reprezentován řadou binárních bitů (1s a 0s). Zde je například řádek strojového kódu:

10110000 01100001

Prvních několik bitů (10110) je instrukce ke zkopírování hodnoty do registru. Další tři číslice (000) označují registr, do kterého bude hodnota zkopírována. Zbytek (01100001) je hodnota, která má být zkopírována.

Samozřejmě 10110 nemá význam a počítač neví, že to znamená „zkopírovat hodnotu“. Procesor je navržen tak, aby série elektrických impulsů představovaných 10110 (on-off-on-on-off) způsobila požadovaný výsledek. To je součástí toho, co se míní pod pojmem „mechanický“.

Nyní, pokud se chystáte napsat program, který má procesor spustit, si dokážete představit, že by psaní tisíců řádků po 1 s a 0 s bylo únavné a náchylné k chybám. Řešením je montážní jazyk. Shromážděný jazyk poskytuje člověkem srozumitelné náhrady za dlouhé řetězce binárního kódu.

Příklad

Pokud například 10110 znamená „přesunout hodnotu“, můžeme ji zkrátit pomocí příkazu MOV.

Mohli bychom také dát rejstříku 000 snáze zapamatovatelné jméno (v tomto případě je registr nazván AL).

Nakonec bychom mohli vykreslit hodnotu v jiném číslovacím systému, jako je desetinná (91) nebo hexidimální (61). Tato linie by pak byla MOV AL, 61. Jakmile je celý program zapsán tímto způsobem, může assembler snadno přeložit každý řádek do příslušné binární reprezentace.

Počítače pracují (provádějí výpočty, přesouvají data, transformují data) zpracováním miliard těchto malých pokynů za sekundu.

Velmi jednoduché pokyny (přesuňte tuto hodnotu, zkopírujte tuto hodnotu, přidejte tyto dvě hodnoty dohromady a uložte hodnotu tam) kombinujte do složitých operací, které se kombinují na vyšších a vyšších úrovních, aby skutečně dělaly věci, které byste rozpoznali jako smysluplné.

Jazykové zdroje sestavení

Online zdroje

Návody a základní návody

  • Výukový program pro programování sestav z bodu Výukový program

  • X86 Assembly Language Programming, kapitola z příručky pro vývojáře FreeBSD, která pomáhá vkládat psaní sestavovacího jazyka do kontextu vývoje operačního systému.

  • Pozdravte shromáždění X64, což je docela jemný úvod ke shromáždění, z blogu Code as Art

  • X86 Assembly Language Programming, další tutoriál, který umisťuje jazyk assembleru dobře do kontextu programování OS, tento s odkazem na Linux, Windows a dokonce i něco o Mac OS X

  • PC Assembly Language, to se zaměřuje na 32bitové počítače se systémem Linux, Windows nebo FreeBSD

  • X86 Assembly Guide, z oddělení počítačových věd University of Virginia

  • Webster: účtuje se jako „místo na internetu, kde se může učit jazyk sestavení“, tento web (zřejmě) provozuje autor The Art of Assembly Language a vynálezce HLA

  • Výukový program pro Linux

  • Snadné X86-64

  • Sestava X86

  • Výukový program pro program Windows Assembly (pdf)

Video návody

  • Výukový program pro programování sestavovacího jazyka, velmi důkladná série 55 videí o sestavení, která vychází z knihy Kul Irvine (Assembly Edition for x86 Processors, 6. vydání) (pokud nebudete sledovat videa, pravděpodobně budete chtít nejnovější vydání)

  • Video Course Video Programming Programming, 70-dílná video série, vyučovaná Arthurem Griffithem, který má velmi lidové kouzlo

  • Assembly Language Intro, přednáška ve třídě v Cornell, představující jazyk sestavení

  • Programovací jazyk pro montáž, hodinový úvod do montáže a skvělý formát, pokud se vám opravdu líbily následující příklady algebry na projektoru na vysokých školách (to je součást větší série mikroprocesorů a mikrokontrolérů).

Odkaz

  • Výpis instrukcí X86, úplný seznam všech instrukcí pro architektury x86, s poznámkami o tom, kdy byly přidány

  • X86 Opcode and Reference Reference

  • Cheat Sheet jazyka Intel X86 (pdf).

Nástroje

Sestavovatelé – existuje spousta sestavovatelů – zde je několik nejpopulárnějších bezplatných a otevřených sestavovatelů:

  • NASM

  • FASM

  • YASM

  • PLYN.

IDE (Integrated Development Environments):

  • SASM, Simple crossplatform IDE pro montážní jazyky NASM, MASM, GAS, FASM

  • Svěží IDE, vizuální jazyk IDE s vestavěným assemblerem FASM

  • WinAsm Studio, bezplatné IDE pro vývoj 32bitových programů Windows a 16bitových programů DOS pomocí Assembleru

  • Vizuální MASM.

Komunitní a průběžné učení

  • Shromáždění fórum na Dream.In.Code

  • Fórum MASM

  • Shromáždění jazyk a strojový kód na hack fóra

Knihy

  • The Art of Assembly Language (online vydání) je jednou z nejpopulárnějších knih o montážním jazyce, od vždy čitelné No Starch Press; Mohlo by vás také zajímat od stejného autora: Napište skvělý kód: Svazek 1: Porozumění stroji a napište skvělý kód, Svazek 2: Myšlení na nízké úrovni, Psaní na vysoké úrovni

  • Assembly Language Step-by-Step: Programming with Linux

  • Profesionální montážní jazyk

  • Montážní jazyk pro procesory x86

  • Moderní programovací jazyk X86: 32bitový, 64bitový, SSE a AVX

  • Úvod do 64bitového programování sestav pro Linux a OS X: Třetí vydání – pro Linux a OS X

  • Úvod do jazykové a počítačové architektury sestavy 80X86

  • Programovací jazyk pro montáž: Pro PC a notebooky.

Pokud se naučíte jazyk sestavení?

Zda se máte naučit jazyk sestavení, záleží na tom, jaké jsou vaše cíle. Pro většinu vývojářů je odpověď „ne“.

Existují dva primární důvody, proč se učit jazyk sestavení: protože ho chcete používat přímo nebo protože chcete porozumět počítačům na základní úrovni.

Z praktického hlediska pouze montážní hrstka světových inženýrů a počítačových vědců používá jazyk sestavení.

Drtivá většina vývoje softwaru, včetně prakticky všech vývojových aplikací jakéhokoli druhu, používá programovací jazyky na vysoké úrovni, nikoli kód sestavení. Některé specifické oblasti, ve kterých se jazyk sestavení používá, jsou:

  • Operační systémy

  • Firmware

  • Ovladače zařízení

  • Jazykový design

  • Návrh překladače

  • Vestavěné systémy

  • Návrh hardwaru

  • Pokročilá kryptografie

  • Teoretická informatika

Dalším důvodem, proč se naučit jazyk sestavení, je pouze lepší porozumění tomu, co se vlastně děje hluboko ve střevech počítače. (To je důvod, proč se prakticky všichni velitelé počítačových věd musí naučit jazyk sestavení.)

Samozřejmě, pokud jste druh člověka, který se o to opravdu zajímá, možná budete chtít přemýšlet o kariéře pracující v oblasti vývoje systémů na nízké úrovni.

Další věci k učení

Existuje několik jazyků, kde, pokud víte něco málo, můžete udělat hodně. Python a Ruby jsou takoví – o víkendu se můžete naučit dost na to, abyste postavili něco, co stojí za to. Shromážděný jazyk není takový.

Montážní jazyk se ve vakuu nikdy nepoužívá. Typ inženýra, který potřebuje znát montáž, pravděpodobně bude pracovat v oblasti, kde je potřeba znát několik dalších dovedností, aby byl efektivní. Mezi ně pravděpodobně patří:

  • Hardwarové jazyky, jako VHDL a Verilog, spolu s dobrým porozuměním mikroprocesorům a elektrotechnice

  • Jazyky operačního systému nízké úrovně, jako je C a jeho deriváty: C ++, C # a D

  • Starší jazyky jako Fortran a Cobol

  • Jazyky platformy jako Java a Objective-C

  • Algoritmy

  • Překladač, tlumočník a návrh jazyka.

Další čtení a zdroje

Máme mnohem více informací o tomto druhu věcí, Programování: Jazyky, Časová osa & Průvodci.

Jaký kód byste se měli naučit?

Zmateni, v jakém programovacím jazyce byste se měli naučit kódovat? Podívejte se na náš infographic, jaký kód byste se měli naučit?

Nejen, že diskutuje o různých aspektech jazyků, ale odpovídá na důležité otázky, například: „Kolik peněz vydělám na programování Java pro bydlení?“

Jaký kód byste se měli naučit?
Jaký kód byste se měli naučit?

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