Машинна мова і асемблер

Машинна мова і асемблер

Мал. 7.1. програми:

a-в довічним машинному коді; б - в шістнадцятковому машинному коді

Програма на машинній мові на рис. 7.1, а стає дещо простіше для сприйняття, коли вона представлена ​​в шістнадцятковому коді (Н-коді), як показано на рис. 7.1,6. Однак, хоча двійкові дані наведені в шістнадцятковому коді, ця частина програми завжди розглядається як задана на машинній мові і виявляється важкою для розуміння.

У більш прийнятною формою записана на машинній мові вона могла б виглядати так:

1. Завантажити двійковечисло (1011 0100) в акумулятор.

2. Інвертувати кожен двійковий біт вмісту акумулятора.

3. Помістити результати інверсії в комірку пам'яті даних 2100Н.

У цій частині здійснюється переклад двійкового 8-розрядного числа в його еквівалент в инверсной формі.

Машинна мова і асемблер

Мал. 7.2. Трансляція мнемоніки асемблера в машинний код програми

Виникає питання: як перейти від цієї форми людської мови, іноді довгою і складною, до машинної мови? Відповідь полягає у використанні мови простого програмування - від найвищого рівня до машинного, представленого на рис. 7.1.

Асемблер використовує слова і фрази, перетворюючи їх в машинний код мікропроцесора.

Зазвичай фраза або задана величина на асемблері буде відповідати висловом довжиною від одного до трьох байт машинного мови.

Суть і процедура ассемблирования показані на рис. 7.2, де, наприклад, друга команда програми представлена ​​єдиною мнемонікою з трьох букв СМА (інвертувати вміст акумулятора - СМА від Complement Accumulator (англ.) - доповнити акумулятор. Мається на увазі додаток до 1, т. Е. Інвертування або формування зворотного коду числа , що міститься в акумуляторі.).

Спочатку три букви переведені в їх еквівалент в коді ASCII, потім три коду ASCII перетворені в певний порядок спеціальною програмою асемблера, яка видає код інверсії вмісту акумулятора на машинній мові, тобто 0010 11112 в даному випадку або 2FH. Мнемоніка перетворена в один єдиний байт машинного мови.

Програма на мові асемблер, записана людиною, могла б бути представлена ​​у вигляді табл. 7.1.

Таблиця 7.1. Програма на мові асемблер

Завантажити акумулятор даними, такими безпосередньо за КОП, В4Н Інвертувати вміст акумулятора Помістити вміст акумулятора в комірку пам'яті 2100Н Зупинити МП

Програма, що складається з символічних команд (фрагмент показаний в табл. 7.1), іноді називається вихідною програмою, а перекладена одного разу на машинну мову - вже об'єктної програмою.

Програмування на мові асемблер є способом «олюднення» дій мікропроцесора. Мови високого рівня (C, С + і т. Д.) При їх використанні роблять програмування зручнішим.

Наприклад, одна команда на C або С + може відповідати 20 або 30 машинним командам. Назва цієї глави відноситься до програмування мікропроцесора (на противагу програмування мікро-ЕОМ), тому що всюди ми будемо використовувати його склад команд. Буде використано програмування на мові асемблер, що допомагає розумінню складу команд мікропроцесора і його дій.

7.1. Два сегмента програми, наведені на рис. 7.1, написані на (асемблері, машинній мові).

7.2. Для формулювання команди мікропроцесора мову (машинний, асемблер) використовує слова і фрази.

7.3. _________ (Асемблер, Монітор) є спеціальною програмою ЕОМ, що дозволяє перевести програму користувача на машинну мову.

7.4. Перерахувати чотири поля програм на мові асемблер.

7.6. Програма, складена з символічних команд, називається (об'єктної, вихідної).

Схожі статті