Читать диплом по всему другому: "Разработка программного обеспечения на языке низкого уровня - ассемблер" Страница 3
адреса результата и одного из данных совпадают и можно задать только один адрес.
Получаем 2-х адресную структуру команды.
Структура 2-х адресной команды| Код операции | 1 данное ( результат) | 2 данное |
Или
| Код операции | 1 данное | 2 данное (результат) |
В литературе есть обоснование и первого и второго форматов команд. В настоящее время используются оба формата для разных типов процессоров. Т.к. результат помещается вместо одного из данных, могут потребоваться команды пересылки данных для создания их копии.
Заметим, что операторы языка С видакак раз отражают эту ситуацию и программируются одной командой после вычисления . Оператор вида =программируется несколькими командами (почему?).
Доступ к памяти требует значительно больше времени, чем выполнение операции процессором. Для уменьшения потерь памяти используется фиксированная ячейка, называемая Accumulator, доступ к которой значительно быстрее, чем к обычной ячейке памяти за счет того, что она одна и за счет аппаратной реализации. В этом случае в команде задается только один адрес, второе данное и результат получаются в фиксированной ячейке.
Структура 1 адресной команды.| Код операции | Адрес данного |
Заметим, что некоторые команды требуют задать только один адрес без использования аккумулятора, например, команда увеличения на 1 содержимого памяти.
Так оператор С x++ означает использование одноадресной команды вместо двухадресной сложения (x+=1) или нескольких команд в случае x=x+1.
В систему команд должны быть добавлены команды для обмена данными между аккумулятором и памятью. Недостаток одноадресных команд - основную часть программы составляют команды пересылки данных.
В современных процессорах вместо одной фиксированной ячейки (регистра) используется несколько, в этом случае в команде задается адрес данного и регистр, т.е. опять возвращаемся к двух адресной структуре команды.
Структура безадресных командНекоторые из команд не требуют задания адреса, например, команда СТОП (Halt) для процессора. В случае использования команд с данными можно использовать стек для хранения данных, в этом случае адреса данных можно не задавать. Стек - это массив, заполнение и извлечение данных для которого выполняется по правилу "Первый вошел, последний вышел". В этом случае данные для операции записываются в стек. Результат помещается вместо этих данных.
Для упрощения распределения памяти и запоминания кодов команд вместо машинных кодов используются их обозначения, а вместо конкретных адресов - символические адреса. Символические коды для основных операций заданы в табл. 4.1 Таблица 4.1 Мнемонические коды арифметических команд
| Код | Обозначение |
| 01 (+) | ADD |
| 02 (-) | SUB |
| 03 (*) | MUL |
| 04 (/) | DIV |
Пусть данные занимают ячейки
+ 0 : X+ 1: Y+ 2 : Z+ 3 : U+ 4 : V + 5 : W Пусть программа занимает ячейки P + 0, P + 1, …
Пусть в качестве ячеек для промежуточных данных используются R + 0, R + 1, …
Текст программы с учетом принятых обозначений задан в табл. 5.1. Таблица 5.1. Текст программы
| Адрес | Код | 1 данное |
Похожие работы
Интересная статья: Основы написания курсовой работы

(Назад)
(Cкачать работу)