Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler_konspekt_1.doc
Скачиваний:
16
Добавлен:
10.11.2019
Размер:
274.94 Кб
Скачать
  1. Формат «Регистр-непосредственный операнд» (Рг-но) – 3÷4 байта

Формат команды (см. рис.6)

1-й байт

2-й байт

3-й, 4-й байты

КОП

s

w

md

КОП’

reg

data (1 ÷ 2 байта)

Рис. 6

Здесь s используется в сочетании с w в разный командах немногом по-разному , но смысл – выбор длины непосредственного операнда 1 или 2 байта;

КОП’ – дополнительное поле, расширение кода операции в двухоперандных командах с непосредственным операндом;

reg - обозначает конкретный регистр в сочетании с w;

data – поле данных, причем если это слово, то – в польской инверсной записи.

  1. Формат «Память-непосредственный операнд» (яп-но) – 3÷6 байтов

Формат команды (см. рис.7)

1-й байт

2-й байт

С 3-го по 6-й байты

КОП

s

w

md

КОП’

r/m

adr (1 ÷ 2 байта)

data (1 ÷ 2 байта)

Рис. 7

Смысл полей аналогичен описанным выше.

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

Представление данных в пэвм

  1. Целые числа

ЭВМ поддерживает работу с числами, длиной в :

  • байт (1Б);

  • слово (2Б);

  • двойное слово (4Б);

Выделяются 2 типа целых чисел:

  • беззнаковые (неотрицательные);

  • числа со знаком.

Это позволяет использовать 2 диапазона чисел. Например, для 1 байта

  • беззнаковое целое от 0 до 255 (28 – 1),

  • целое со знаком по модулю от 0 до 127 (27 – 1).

а) Беззнаковые числа представляются в двоичной системе, занимая все разряды ЯП.

Например, для десятичного числа 98 = 62h = 01100010B требуется 1Б, можно использовать слово 0062h (2Б). Слово в памяти располагается в польской инверсной записи, а в регистрах – в естественном порядке байтов.

Для чисел длиной в двойное слово – аналогично.

Например, число 12345678h в оперативной памяти по адресу w располагается следующим образом:

w

w+1

w+2

w+3

78

56

34

12

Б) Целые числа со знаком представляются в дополнительном коде, т.е.

Х доп.= 

Х, Х>0

2к-|X|, X<0 ,

где k – разрядность ЯП.

Например, для числа -98 = 9Eh (1 Б)= FF9Eh (слово 2Б).

Для облегчения перевода в дополнительный код используется алгоритм:

- все цифры, кроме младшей заменяются инверсией, т.е. для 16-ричной системы счисления (15 – {цифра});

- последняя (младшая) цифра заменяется дополнением, т.е. (16 – {цифра});

- правые нулевые разряды не изменяются, и младшим разрядом считается самый правый ненулевой разряд.

Обратный перевод в прямой код из дополнительного выполняется по тому же алгоритму.

В памяти числа длиной в слово или двойное слово хранятся в польской инверсной записи, причем знаковый разряд попадает в последний байт.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]