Асемблер

Асе́мблер (англ. assembler) — комп'ютерна програма-транслятор, що призначена для генерації машинного (двійкового) коду з символьного представлення цього коду (мови асемблера). Наприклад, текстовий рядок CLI для архітектури x86 перетворюється асемблером у двійковий код 11111010. Крім власне трансляції, багато програм-асемблерів підтримують і іншу функціональність, корисну при розробці системного і прикладного програмного забезпечення, таку як вибір формату об'єктного модуля, генерація символьної інформації (наприклад, відлагоджувальної), різноманітні директиви на зразок EXTERN чи GLOBAL, макрокоманди тощо.

При трансляції з мов високого рівня асемблер нерідко використовується для виконання завершальної фази трансляції.

Історія

Один з перших асемблерів було створено Натаніелем Рочестером для машини IBM 701. Асемблер одразу полегшив працю першим програмістам: замість кодів машинних команд стало можливим писати програму у символьній (алфавітно-цифровій) формі, і найголовніше, відпала необхідність ручного перерахунку всіх адрес переходів при зміні програми. Асемблери 1950-х років, що мали назву автокодерів, були одними з перших, що надавали можливість означення і використання макрокоманд. Починаючи з 1960-1970-х років зростає важливість взаємодії і інтеграції програм і фрагментів мовою асемблера з модулями, написаними на мовах програмування високого рівня. До сьогодні такі програми, як асемблер і компонувальник є абсолютно необхідними інструментами при представленні нової архітектури комп'ютера чи процесора.

Базова трансляція

Найпростішим способом перетворення символьних рядків на машинні команди може бути пряма трансляція. Наприклад, з кожного наступного рядка тексту

 mov eax, 0F00BADh
 jmp eax

асемблером для 32-розрядної архітектури x86 одразу може бути згенерований машинний код відповідної команди процесора і її аргументів (B8 AD 0B F0 00 FF E0). Якщо ж у програмі присутні команди безпосередньо переходу за мітками, алгоритм роботи асемблера ускладнюється: потрібні як мінімум два перегляди (або проходи) тексту програми. При першому перегляді здійснюється розподіл пам'яті і надання значень символічним іменам; при другому — формується об'єктний модуль. В процесі трансляції асемблер проводить повний синтаксичний аналіз початкової програми, забезпечуючи при цьому достатньо точну діагностику помилок за місцем і характером.

Розширені можливості

Докладніше: Макроасемблер

На додачу до базової трансляції, одним з найбільш вживаних механізмів програм-асемблерів є макроінструкції, починаючи з найпростішої заміни тексту, і до сучасних вбудованих макропроцесорів, з доволі складними можливостями підстановки і розкриття параметрів. Наприклад, асемблери NASM і YASM реалізують власний стек макропроцесора (директиви %push і %pop), можуть здійснювати зсув переданих макрокоманді параметрів на задану кількість (%rotate), повторювати емітування послідовності команд (%rep / %endrep), здійснювати умовну трансляцію (директиви %ifdef і подібні). Пакети макрокоманд для багатих на можливості асемблерів надають програмістам навіть механізм, наближені до структурного програмування, коли програма на мові асемблера виглядає так, немов би вона містить такі сутності, як процедури і функції, локальні змінні, структури даних з можливістю символічної адресації полів, інструкції-перемикачі і тому подібне.[1]

Асемблер NASM (а також майже повністю сумісний YASM) реалізує підтримку одразу кількох форматів об'єктних файлів. Така можливість надзвичайно корисна при крос-компіляції, коли, наприклад, на комп'ютері з операційною системою GNU/Linux потрібно отримати об'єктний файл у форматі PE для систем типу Microsoft Windows. Можливо також задати трансляцію безпосередньо у формат двійкового коду (bin), коли потрібна відповідність «один в один» між текстом програми і згенерованим кодом.

Надзвичайно корисною є підтримка локальних міток у процедурах. У великих програмах це дозволяє мати у кожній процедурі чи функції мітки на кшталт exit чи error, і асемблер коректно визначить адреси переходу на них в межах даної процедури.

Асемблери для архітектури x86

  • Транслятори:
    • MASM - Microsoft Macro Assembler, ліцензія Microsoft EULA
    • GAS - GNU Assembler, ліцензія GNU GPL
    • FASM - flat assembler, ліцензія BSD
    • NASM - Netwide Assembler, ліцензія BSD
    • RosASM
    • TASM - Turbo Assembler від Borland, пропрієтарний, підтримку припинено
    • Yasm - вільний асемблер на основі NASM, ліцензія BSD
    • WASM - Open Watcom Assembler, ліцензія Sybase Open Watcom Public License
    • GoAsm - вільний асемблер від Джеремі Гордона

Асемблери для інших архітектур

  • HLASM - High Level Assembler від IBM

Література

Посилання

  1. Препроцесор NASM: головна документація. Архів оригіналу за 21 січня 2018. Процитовано 20 січня 2018.

Read other articles:

فيليب جورج هاوثم جل معلومات شخصية الميلاد 20 أكتوبر 1914(1914-10-20)دبلن  الوفاة 3 مايو 2001 (86 سنة)   كامبريدج  مواطنة المملكة المتحدة  عضو في الجمعية الملكية  الحياة العملية المهنة عالم أمراض،  وعالم مناعة،  وأستاذ جامعي  اللغات الإنجليزية  مجال العمل علم المن�...

Kopstukken van de NLP, achterste rij van links naar rechts: Wilhelm Wehrenpfennig, Eduard Lasker, Heinrich von Treitschke, Johannes Miquel, voorste rij van links naar rechts: Franz von Roggenbach, Karl Braun, Rudolf Gneist, Ludwig Bamberger Wilhelm Wehrenpfennig (Blankenburg, 25 maart 1829 - Berlijn, 25 juli 1900) was een Pruisisch, later Duits politicus en publicist. Biografie Wilhelm Wehrenpfennig studeerde in Jena en Berlijn theologie. In 1853 promoveerde hij in Halle (Saale) en was vervol...

  Paloma perdiz pechiblanca Estado de conservaciónPreocupación menor (UICN 3.1)[1]​TaxonomíaReino: AnimaliaFilo: ChordataClase: AvesOrden: ColumbiformesFamilia: ColumbidaeGénero: PampusanaEspecie: P. jobiensis(A.B. Meyer, 1875)Sinonimia Gallicolumba jobiensisAlopecoenas jobiensis [editar datos en Wikidata] La paloma perdiz pechiblanca, paloma perdiz pecho blanco o paloma perdiz de pecho blanco (Pampusana jobiensis)[2]​ es una especie de ave columbiforme de ...

رسم بياني للتداخل لفابري- بيرو : ضوء الأشعة تنعكس داخل التجويف، ويعكس جزئيا وتكون الاشعة الخارجة من المقياس متوازية مقياس فابري ـ بيرو (بالإنجليزية: Fabry–Pérot interferometer)‏ صمم هذا الجهاز العالمان فابري وبيرو سنة 1899 لدراسة ظاهرة التداخل بين الحزم الضوئية المتعددة.[1][2]...

جائزة بريطانيا الكبرى 1950 (بالإنجليزية: The Royal Automobile Club Grand Prix d'Europe Incorporating The British Grand Prix)‏  السباق 1 من أصل 7 في بطولة العالم لسباقات الفورمولا واحد موسم 1950 السلسلة بطولة العالم لسباقات فورمولا 1 موسم 1950  البلد المملكة المتحدة  التاريخ 13 مايو 1950 مكان التنظيم حلبة سلفرست

Jamal Crawford merupakan pemimpin NBA karier empat poin permainan. Dalam permainan bola basket, sebuah four-point play atau empat poin permainan merupakan kejadian yang jarang, ketika seorang pemain penyerang menembak dan membuat suatu angka tiga poin permainan sementara sekaligus di langgar oleh seorang pemain bertahan, menghasilkan suatu tembakan pelanggaran (shooting foul) dan 1 usaha lemparan bebas atau 2 poin permainan dan dengan sengaja atau pelanggaran keras saat menembak dan di hadiah...

Hermann Lindrath auf einem Wahlplakat zur Bundestagswahl 1957 Hermann Lindrath (* 29. Juni 1896 in Eisleben; † 27. Februar 1960 in Mannheim) war ein deutscher Politiker (CDU). Von 1957 bis zu seinem Tod war er Bundesminister für den wirtschaftlichen Besitz des Bundes. Familiengrab des ehemaligen Bundesministers Hermann Lindrath auf dem Heidelberger Bergfriedhof in der (Abt. V) Inhaltsverzeichnis 1 Ausbildung und Beruf 2 Partei 3 Abgeordneter 4 Öffentliche Ämter 5 Literatur 6 Siehe auch 7...

For those of a similar name, see Bob Harvey (disambiguation). Bob HarvieBorn3 JanuaryColombo, Sri LankaDied7 July 2010Nationality Sri LankanOccupationBroadcaster/ Cricket / Rugby CommentatorEmployerRadio Ceylon / Sri Lanka Broadcasting CorporationKnown forBroadcasting / cricket commentariesTitleFormer Captain of the Ceylon Army.SpouseGrace Harvie Robert James Anthony Harvie Bob Harvie was a popular announcer of Radio Ceylon. Harvie's voice was inextricably linked to cricket commentaries ...

Fred YatesFull nameFred Dewhirst YatesCountryEnglandBorn(1884-01-16)16 January 1884Birstall, EnglandDied11 November 1932(1932-11-11) (aged 48)London, England Fred Dewhirst Yates (16 January 1884, Birstall – 11 November 1932, London)[1][2] was an English chess master who won the British Chess Championship on six occasions. He started a career in accountancy, but in 1909, abandoned it in favour of becoming a professional chess player and journalist. Chess career ...

شطرنج العارفين   المؤلف محيي الدين بن عربي  تعديل مصدري - تعديل   شطرنج العارفين، كتاب في التصوف ينسب إلى الشيخ محيي الدين ابن عربي، (558-638 هـ)،[1] يهدف مؤلفهُ إلى الدلالة على الله والارشاد إلى صراطهِ المستقيم بصدق التوجه إلى الله، وبمجاهدة النفس الامارة فيما تهواه�...

ايرين هيثرتون هيثرتون في مجموعة ربيع 2009 كوستو دالماو , سبتمبر 2008 معلومات شخصية الاسم عند الميلاد رين هيذر بابلي الميلاد 4 مارس 1989 (العمر 34 سنة)[1]سكوكي , إلينوي , الولايات المتحدة . الأصل أمريكية الإنتماء العرقي يهودية اللغات المحكية الإنجليزية  الطول 5 قدم 11 بوصة (1...

American reality television series The Real Housewives Ultimate Girls TripGenreRealityStarring Cynthia Bailey Teresa Giudice Melissa Gorga Luann de Lesseps Kenya Moore Kyle Richards Ramona Singer Taylor Armstrong Brandi Glanville Vicki Gunvalson Tamra Judge Eva Marcille Dorinda Medley Phaedra Parks Jill Zarin Gizelle Bryant Candiace Dillard Bassett Heather Gay Leah McSweeney Alexia Nepola Marysol Patton Whitney Rose Porsha Williams Guobadia Kelly Killoren Bensimon Sonja Morgan Kristen Taekman...

لونغ جون سيلفرLong John Silver (بالإنجليزية) غلاف دي في ديمعلومات عامةالصنف الفني حركة، مغامرات، دراماالموضوع قرصنة بحرية تاريخ الصدور 16 دجنبر، 1954 17 دجنبر، 1954 16 فبراير، 1955مدة العرض 106 دقيقةاللغة الأصلية إنجليزيةالبلد  أسترالياموقع التصوير أستراليا الطاقمالمخرج بايرون هاسكين...

1997 Hong Kong filmIsland of GreedTraditional Chinese黑金Simplified Chinese黑金Hanyu PinyinHēi JīnJyutpingHak1 Gam1 Directed byMichael MakScreenplay byJohnny MakStory byJohnny MakChan Man-keungLee Ying-kitJesse HungLiang Hai-chiangProduced byJohnny MakStarringAndy LauTony LeungPauline SuenAnnie WuCinematographyJingle MaTony CheungLin Tien-kuiEdited byPoon HungMusic byRaymond WongLandy WeiProductioncompaniesWin's EntertainmentJohnny Mak ProductionDistributed byChina Star Entertainme...

Gloria Kotnik Medallista olímpica Datos personalesNacimiento Slovenj Gradec, Yugoslavia1 de junio de 1989 (34 años)Carrera deportivaRepresentante de Eslovenia EsloveniaDeporte Snowboard               Medallero Snowboard femenino Evento O P B Juegos Olímpicos 0 0 1 [editar datos en Wikidata] Gloria Kotnik (Slovenj Gradec, Yugoslavia, 1 de junio de 1989) es una deportista eslovena que compite en snowboa...

American Hasidic Jewish singer (born 1951) Mordechai Ben DavidBackground informationBirth nameMordechai WerdygerAlso known asThe King of Jewish MusicBorn (1951-04-16) April 16, 1951 (age 72)[1]OriginSea Gate, Brooklyn, New YorkGenresOrthodox popOccupation(s)VocalistcomposerYears active1973–presentLabelsMBDMusical artist Mordechai Werdyger (born April 16, 1951) is an American Israeli Chasidic Jewish singer and songwriter who is popular in the Orthodox Jewish community. He is...

9th episode of the 4th season of Adventure Time Princess Monster WifeAdventure Time episodeEpisode no.Season 4Episode 9Directed by Larry Leichliter[a] Adam Muto[b] Nick Jennings[c] Written bySomvilay XayaphoneBert YounStory byPatrick McHaleKent OsbornePendleton WardFeatured musicSomething Special by Patrick McHaleProduction code1008-088[1]Original air dateMay 28, 2012 (2012-05-28)Running time11 minutesEpisode chronology ← PreviousHug ...

Swedish freediver and mountaineer Annelie PompeAfter a speech in Gothenburg, Sweden, 2016Born25 February 1981 (1981-02-25) (age 42)SwedenNationalitySwedishOccupation(s)writer, photographer, personal trainer, motivational speakerKnown forfreediving variable weight female world record 2010, summiteer with supplemental oxygen mt. Everest Annelie Pompe (born 1981) is an adventurer and athlete from Gothenburg, Sweden. She grew up close to the sea and has always felt at home in the o...

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Pulau Bintan – berita · surat kabar · buku · cendekiawan · JSTOR Pulau Bintanڤولو بينتنGeografiLokasiAsia TenggaraKepulauanKepulauan RiauPemerintahanNegaraIndonesia Artikel ini mengenai Pulau Bi...

South Korean video game developer Devsisters CorporationThe current Devsisters CI, adopted in 2010.Company typePublicTraded asKRX: 94480IndustryVideo gamesFounded2007; 17 years ago (2007) (as Extra Standard)2009; 15 years ago (2009) (as Moblier Corp.)[1][2]HeadquartersSeoul, South KoreaArea servedWorldwideKey peopleJi-hoon Lee (CEO)Jong-heun Kim (Co-CEO)Minwoo-Ryu (CSO)OwnerJi-Hoon Lee (27.4%)[3]Number of employeesapprox. 100 (2016)W...