Что такое ассемблер?
Языки ассемблеров
Команды языка ассемблера
Код операции
Псевдооперации
Литералы
Свободный формат команд
Некоторые типичные команды ассемблера для машин с побайтовой организацией
Ассемблеры типа «трансляция — выполнение»
Однопроходный ассемблер
Двухпроходный ассемблер
Символы
Подробная блок-схема прохода
Подробная блок-схема прохода 2
Пример трансляции
Таблицы символов общие замечания
Обработка таблицы
Линейный поиск
Двоичный поиск
Сравнение двоичного и линейного способов поиска
Метод хеширования
Пример хеширования
Скученность
Назначение макрокоманды
Различие между макрокомандами и подпрограммами
Форматы макрокоманды
Ключевой макрос
Макропроцессор

Свободный формат команд

Фиксированный формат команд, в которое каждое поле однозначно определяется своей позицией в предложении исходного языка, неудобен для ввода с бумажной ленты или с удаленного терминала, так как длины содержимого одних и тех же полей могут изменяться в различных командах. В этих случаях, для того чтобы из избежать передачи пробелов, обычно применяется свободный формат.
Поля следуют одно за другим в заданном порядке и отделяются друг от друга ограничителями полей. Типичные ограничители — запятая после поля метки, пробел после кода операции, косая черта после поля адреса и маркер конец строки после поля комментария или поля адреса, если за ним не следует комментарий.

Даже формат, показанный на рис 5.1, полуфиксированный. Метки, коды операций и адреса должны начинаться с фиксированных позиций, и их длины ограничены сверху. Первые два поля не имеют ограничителей, а в качестве ограничителя для адресного поля используется пробел. Комментарии имеют свободный формат. Они могут быть помещены где угодно при условии, что после адреса расположен по крайней мере один пробел.

В табл. 5.1 показаны типичные команды ассемблера для средних и больших машин с побайтовой организацией. Для каждой команды перечислены мнемонический код, длина в байтах и формат адресной части. Символические адреса допускаются в любой форме адреса, за исключением прямых операндов. В поле адреса в табл. 5.1 R означает общий регистр, В — базовый регистр, X —> индексный регистр, L,— длину операнда, М—маску и I — непосредственный операнд, который не адресуется, а явно, вставляется в команду. Таблица неполна, так как команды языка ассемблера изменяются от системы к системе. Полный набор команд читатель может найти в руководствах к конкретным системам, например в [1, 2, 3].

Hosted by uCoz