Jazyk symbolických adres

Jazyk symbolických adres
Paradigmaimperativní
Vznik1949

Jazyk symbolických adres (zkratka JSA, anglicky assembly language), jazyk symbolických instrukcí nebo slangově assembler je v informatice nízkoúrovňový programovací jazyk, jehož základem jsou symbolické reprezentace jednotlivých strojových instrukcí a konstant potřebných pro vytvoření strojového kódu pro určitý procesor. Jazyk zpravidla vytváří výrobce pro konkrétní typ procesoru a jeho soubor instrukcí. Nejedná se tedy o jeden konkrétní jazyk, ale spíše o druh jazyka.

Jazyk je založen na náhradě kódů instrukcí mnemotechnickými zkratkami anglických slov, které vyjadřují, co daná strojová instrukce dělá. Dále jazyk umožňuje místo konkrétní číselné paměťové adresy používat symbolické adresy v podobě návěstí. Pro převod programu v JSA do strojového kódu se používá překladač, který se nazývá assembler. Tento název se v češtině přeneseně používá i pro samotný jazyk.

JSA umožňuje psát extrémně rychlé a paměťově úsporné programy. Jeho nevýhody jsou především závislost na konkrétním procesoru, tedy neumožňuje snadnou přenositelnost na jinou platformu, jeho kód je dlouhý a obtížně se hledají chyby. Proto se používá jen pro určité úlohy a ostatní části softwaru se vytvářejí ve vyšších programovacích jazycích.

Historie

JSA se poprvé objevily v 50. letech 20. století, kdy byly označovány jako druhá generace programovacích jazyků. Eliminovaly většinu chyb vznikajících při programování a časovou náročnost první generace programovacích jazyků tím, že odstranily nutnost pamatovat si číselné kódy jednotlivých strojových instrukcí, nutnost vypočítávat adresy skoků a umístění dat a zjednodušením (zkrácením) zápisu programu. Ve své době byly široce využívány pro všechny typy programování. Avšak v 80. letech (u mikropočítačů v 90. letech) byly nahrazeny programovacími jazyky s vyšší úrovní abstrakce, které přinášely vyšší produktivitu programování.

V současné době jsou JSA používány zejména pro přímé ovládání hardware, přístup ke specializovaným instrukcím procesoru nebo pro kritické úseky, kde je nutný vysoký výkon. Typicky se jedná o ovladače zařízení, nízkoúrovňové embedded systémy a operační systémy.

Pokročilé překladače JSA poskytují doplňující nástroje pro správu a vývoj kódu, řízení překladu programu, a podporu ladění. Mezi hlavní prvky patří také podpora maker, pak nazýváme takový překladač makro assembler.

Terminologie

Anglické slovo assembler znamená sestavovatel a označuje pouze překladač, tj. program, který sestavuje strojový kód. Programovací jazyk zpracovávaný takovým překladačem se označuje JSA, v angličtině se jmenuje assembly language.

Exaktní česká terminologie vychází z toho, že assembler označuje pouze překladač, zatímco programovací jazyk označuje výhradně jako jazyk symbolických adres (JSA), kterýžto výraz popisuje základní nabízenou výhodu – odstranění nutnosti ručně propočítávat veškeré adresy při překladu programu.

V praxi se ovšem velmi často pro označení JSA používá termín assembler (původem z anglického jazyka).

Charakteristika

JSA je programovací jazyk nejnižší úrovně a je závislý na strojovém kódu procesoru. Každá rodina procesorů má svůj vlastní odlišný JSA, protože ve strojových instrukcích různých rodin procesorů a možnosti rozdělování a adresování paměti bývají zásadní rozdíly. Každá firma vyrábějící procesory si definuje vlastní pravidla pro JSA svých procesorů, z kterých mohou (ale také nemusejí) vycházet nezávislí autoři a firmy.

Společným rysem drtivé většiny JSA je, že kódovou jednotkou je zde jeden řádek.

Program v JSA se skládá z

překladových direktiv
tyto direktivy ovlivňují způsob překladu (například pro jakou verzi procesoru se překládá, zda se ignorují velká a malá písmena, zda se generuje výpis a s jakým stránkováním, atp.). Rovněž označují začátek a konec kódových sekcí.
strojových instrukcí
symbolicky zapsané strojové instrukce jsou při překladu nahrazeny odpovídajícím strojovým kódem
definic obsahu paměti
můžeme inicializovat obsah paměti, nebo vyhradit v paměti místo pro proměnné
návěstí
návěstí umožňují pojmenovat místa v paměti počítače. Návěstí umístěné před instrukcí se používá jako pro definici bodu v programu, na který můžeme skočit, návěstí umístěné před definicí obsahu paměti se používá při odkazování na tuto paměť
maker
makra slouží pro nahrazení často používaných sekvencí instrukcí, umožňují zpřehlednit a zjednodušit kód vytvořením pseudoinstrukcí a formalizací často používaných konstrukcí
podmínkových bloků
podmínkové bloky dovolují generovat odlišný kód v závislosti na nastavení překladových symbolů, což může být užitečné například při ladění, nebo u kódu určeného pro více platforem
definic překladových symbolů
překladové symboly pomáhají při vytváření dobře strukturovaného kódu programu

Assembler zpravidla překládá zdrojový kód na několik průchodů. To je dané tím, že při prvním průchodu nejsou známé adresy a hodnoty definované za překládaným řádkem, ovšem i při dalších průchodech se mohou adresy posunout, protože délka strojové instrukce může záviset na hodnotách adres a konstant, které byly v prvním průchodu neznámé, přičemž změnou původně předpokládané délky instrukce se mohou adresy opět posunout…

Příklad instrukce

Příkladem jednoho řádku – jedné instrukce jazyka symbolických adres procesoru x86/i386 (např. Intel 80386), s komentářem:

; Do akumulátoru (l=low: dolní část) načti hodnotu 61 v hexadecimální soustavě
mov al, 61h

stejná instrukce ve strojovém kódu o délce 2 bajtů:

10110000 01100001

Instrukce říká: do registru „al“ vlož číslo 61 šestnáctkové soustavy (číslo 97 v desítkové soustavě). Za středníkem je komentář, který není součástí výsledného programu. Instrukce „mov“ (zkratka anglického move, „přesun“) znamená přiřazení hodnoty, „al“ je označení dolního bajtu („l“=low) registru pojmenovanáho akumulátor („a“), následuje čárkou oddělený parametr – zde vkládaná hodnota.

Ve strojovém kódu je první bajt (10110000) kódem instrukce mov al, druhý bajt (01100001) je parametr – číslo 61h.

Program „Ahoj světe!“

Hello world v MASM pro Windows:

.model flat, stdcall
option casemap :none
include windows.inc
include kernel32.inc
.data
message db "Ahoj svete!",13,10
.code
main proc
 invoke  GetStdHandle, STD_OUTPUT_HANDLE
 invoke  WriteConsoleA, eax, addr message, sizeof message, 0, 0
 ret
main endp
end main


Hello world v NASM pro DOS:

[org 100h]
[bits 16]
jmp START

; Nastavit pozici kurzoru
; IN: dl = x, dh = y
curto:
 xor bh,bh
 mov ah,2
 int 10h
ret

; Napsat barevne znaky, ale neposouvat kurzor
; IN: al = char, bl = color, cx = count
putchar:
 xor bh,bh
 mov ah,9
 int 10h
ret

; Napsat znak a posunout kurzor
; IN: al = char
wrchar:
 xor bh,bh
 mov ah,0Eh
 int 10h
ret

; Cist klavesu s cekanim
; OUT: al = ASCII code || 0, ah = scan code
inkey:
 mov ah,0
 int 16h
ret

; Napsat textovy retezec ukonceny binarni nulou
; IN: ds:si -> null_terminated_string
writez:
l_writez1:
 lodsb
 or al,al
 jz l_writez9
 xor bh,bh
 mov ah,0Eh
 int 10h
 jmp l_writez1
l_writez9:
ret

msg1: db "Ahoj svete!", 13,10, 0

START:
push cs
pop ds
mov si,msg1
call writez

END:
mov ax,4C00h
int 21h

Související články

Externí odkazy


Read other articles:

Văn phòng Bộ Công anCông an nhân dân Việt NamCông an kỳCông an hiệuQuốc gia Việt NamThành lậpNgày 18 tháng 4 năm 1946 (77 năm, 304 ngày)Phân cấpCục đặc biệtNhiệm vụLà cơ quan tham mưu đầu ngànhBộ phận củaBộ Công an (Việt Nam)Bộ chỉ huy Hà NộiTên khácV01Lễ kỷ niệmNgày 18 tháng 4Lãnh đạo hiện nayChánh Văn phòng Đặng Hồng ĐứcPhó Chánh Văn phòng Bùi Quang Hải Hoàng Anh Tuyên Vũ Hữu ...

 

Efek Slashdot, juga dikenal sebagai slashdotting, terjadi ketika pranala situs web populer ke situs yang lebih kecil, yang menyebabkan peningkatan besar dalam lalu lintas situs kecil tersebut. Ini menyebabkan beban besar pada situs kecil, menyebabkan situs tersebut melambat atau bahkan sementara menjadi tidak tersedia. Nama ini berasal dari masuknya lalu lintas web yang akan dihasilkan dari situs berita teknologi Slashdot, meskipun nama ini telah dilaporkan pada tahun 2005, mengurangi persain...

 

Artikel ini adalah tentang kemunculan alkohol dan pemakaiannya dalam Alkitab. Lihat pula: Pandangan Kristen tentang alkohol Yesus digambarkan mengubah air menjadi anggur. Maerten de Vos, Perkawinan di Kana, c. 1597, Katedral Santa Maria, Antwerp, Belgia. Minuman beralkohol muncul dalam Alkitab Ibrani, setelah Nuh menanam ladang anggur dan menjadi mabuk. Dalam Perjanjian Baru, Yesus secara ajaib membuat sejumlah anggur[1] di perkawinan di Kana. Anggur adalah minuman beralkohol pa...

Sterling PricePrice berseragam, c. 1862JulukanOld PapLahir(1809-09-14)14 September 1809Prince Edward County, Virginia, Amerika SerikatMeninggal29 September 1867(1867-09-29) (umur 58)St. Louis, Missouri, Amerika SerikatDikebumikanBellefontaine Cemetery,St. Louis, Missouri, Amerika Serikat (38°41′29″N 90°13′49″W / 38.69139°N 90.23028°W / 38.69139; -90.23028)Pengabdian Amerika Serikat Missouri (Konfederasi) Confederate StatesDinas/cabang U...

 

Artikel ini bukan mengenai Bangsa Sarmatia. Orang Samaria Israelite Samaritan atau Orang Samaria adalah penduduk wilayah Israel bagian utara, yang dulunya menjadi wilayah Kerajaan Israel.[1] Sejak abad ke-6 SM, ada pertentangan antara orang-orang Samaria dengan orang-orang Yahudi, yang berlangsung hingga masa Perjanjian Baru.[1] Pertentangan tersebut terutama disebabkan alasan etnisitas, yang mana orang-orang Yahudi menganggap orang-orang Samaria tidak berdarah Israel murni ka...

 

Dutch racing driver This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Glenn van Berlo – news · newspapers · books · scholar · JSTOR (July 2020) (Learn how and when to remove this template message)...

CloverWorks Inc.Logo studio sejak 2019-sekarangNama asli株式会社クローバーワークス[1]Nama latinKabushiki-gaisha Kurōbā WākusuJenisKabushiki gaisha Anak perusahaanIndustriStudio animasi Industri animeDidirikan1 Oktober 2018; 5 tahun lalu (2018-10-01)[2]Kantorpusat1-7-7 Umezato, Suginami, Tokyo, Jepang[2]TokohkunciHiroyuki Shimizu (清水博之) (Ketua) Akira Shimizu (清水暁) (Presiden)Total ekuitas¥ 100,000,000[2]PemilikSony Music Entert...

 

Commune in Occitania, FranceFont-Romeu-Odeillo-ViaCommuneChurch of St. Martin in Odeillo Coat of armsLocation of Font-Romeu-Odeillo-Via Font-Romeu-Odeillo-ViaShow map of FranceFont-Romeu-Odeillo-ViaShow map of OccitanieCoordinates: 42°29′54″N 2°02′05″E / 42.4983°N 2.0347°E / 42.4983; 2.0347CountryFranceRegionOccitaniaDepartmentPyrénées-OrientalesArrondissementPradesCantonLes Pyrénées catalanesGovernment • Mayor (2020–2026) Alain Lunea...

 

The list of shipwrecks in 2014 includes ships sunk, foundered, grounded, or otherwise lost during 2014. This is a dynamic list and may never be able to satisfy particular standards for completeness. You can help by adding missing items with reliable sources. table of contents ← 2013 2014 2015 → Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec References January 1 January List of shipwrecks: 1 January 2014 Ship State Description Peace  Cambodia The cargo ship issued ...

This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Vipakasutra – news · newspapers · books · scholar · JSTOR (February 2024) VipakasutraInformationReligionJainism Part of a series onJainism Jains History Timeline Index Philosophy Anekantavada Cosmology Ahimsa Karma Dharma Mokṣa Kevala Jnana Dravya T...

 

Kemenyan, seperti yang dijual di Gombong, Jawa Tengah Penjual kemenyan di Tapanuli di masa Hindia Belanda Kemenyan adalah getah (eksudat) kering, yang dihasilkan dengan menoreh batang pohon kemenyan (Styrax spp., suku Styracaceae; terutama S. benzoin Dryand. dan S. paralelloneurus Perkins). Resin yang kering berupa keping-keping putih atau keputihan, yang terbenam dalam massa coklat bening keabuan atau kemerahan, keras namun rapuh, dan berbau harum enak. Kemenyan ini dalam perdagangan interna...

 

Sex EducationGenre Drama komedi komedi seks PembuatLaurie NunnPemeran Asa Butterfield Gillian Anderson Ncuti Gatwa Emma Mackey Connor Swindells Kedar Williams-Stirling Alistair Petrie Mimi Keene Aimee Lou Wood Chaneil Kular Simone Ashley Tanya Reynolds Mikael Persbrandt Patricia Allison Anne-Marie Duff Rakhee Thakrar Jemima Kirke Penata musik Oli Julian Ezra Furman Negara asalInggrisBahasa asliInggrisJmlh. musim4Jmlh. episode32 (daftar episode)ProduksiProduser eksekutif Jamie Campbell ...

2007 South Korean film directed by Chang Yoon-hyun Hwang Jin YiPoster to Hwang Jin Yi (2007)Directed byChang Yoon-hyunWritten byKim Hyun-jungBased onHwangjiniby Hong Seok-jungProduced byLee Chun-yeon Jo Seong-won Hwang Gyeong-seongStarringSong Hye-kyoYoo Ji-taeCinematographyChoi Young-taekEdited byNam Na-yeongMusic byWon IlDistributed byCine-2000Release date June 6, 2007 (2007-06-06) Running time141 minutesCountrySouth KoreaLanguageKoreanBudgetUS$7,200,000Box officeUS$8,511,147...

 

土库曼斯坦总统土库曼斯坦国徽土库曼斯坦总统旗現任谢尔达尔·别尔德穆哈梅多夫自2022年3月19日官邸阿什哈巴德总统府(Oguzkhan Presidential Palace)機關所在地阿什哈巴德任命者直接选举任期7年,可连选连任首任萨帕尔穆拉特·尼亚佐夫设立1991年10月27日 土库曼斯坦土库曼斯坦政府与政治 国家政府 土库曼斯坦宪法 国旗 国徽 国歌 立法機關(英语:National Council of Turkmenistan) ...

 

Sports shooting at the Olympics Men's 50 metre pistolat the Games of the XXV OlympiadRomanian stamp commemorating 1992 Olympic shootingVenueMollet del VallèsDate26 JulyCompetitors44 from 29 nationsWinning score658Medalists Kanstantsin Lukashyk Unified Team Wang Yifu China Ragnar Skanåker Sweden← 19881996 → Shooting at the1992 Summer OlympicsRifle50 m rifle three positionsmenwomen50 m rifle pronemen10 m air riflemenwomenPistol50 m pistolmen25 m ...

В Википедии есть статьи о других людях с такой фамилией, см. Добрынин; Добрынин, Владимир. Владимир Александрович Добрынин Дата рождения 2 августа 1924(1924-08-02) Место рождения Белоомут, Луховицкий район, Московская область Дата смерти 27 декабря 2002(2002-12-27) (78 лет) Место смер...

 

شيوعيةصنف فرعي من اشتراكية التاريخ تاريخ الشيوعية شخصيات مهمة كارل ماركس لينين تروتسكي ستالينتعديل - تعديل مصدري - تعديل ويكي بيانات الشيوعية (بالروسية: коммунизм وبالإنجليزية: Communism مشتقة من اللاتينية: communis, common, universal)[1][2] مصطلح يشير إلى مجموعة أفكار في التنظيم ال�...

 

CenturyLink FieldThe Clink Informasi stadionNama lamaSeahawks Stadium (2002–2004) Qwest Field (2004–2011)PemilikWashington State Public Stadium AuthorityOperatorFirst & Goal Inc.LokasiLokasi800 Occidental Ave S Seattle, Washington 98134-1200Koordinat47°35′43″N 122°19′54″W / 47.59528°N 122.33167°W / 47.59528; -122.33167KonstruksiMulai pembangunanSeptember 1998Dibuka28 Juli 2002Biaya pembuatanUS$430 juta (komplek utama) ($599 juta in 2024 do...

You can help expand this article with text translated from the corresponding article in Italian. (April 2016) Click [show] for important translation instructions. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text into the English Wikipedia. Do not translate text that appears unreliable or low-...

 

この項目では、中国と台湾の統一について説明しています。中国の統一王朝については「中国の歴代王朝一覧」をご覧ください。 中国統一中華人民共和国支配地域(紫色)および中華民国支配地域(橙色)。小さな島は、視認性のためにこの地図では誇張されている。繁体字 中國統一 簡体字 中国统一 発音記号標準中国語漢語拼音Zhōngguó tǒngyī両岸(再)統一繁体字 ...