Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Абель.docx
Скачиваний:
13
Добавлен:
26.11.2018
Размер:
569.84 Кб
Скачать

00000001, Чтобы получить число 00000000? в терминах десятичного исчисления

ответом будет -1. Для двоичного рассмотрим 11111111:

00000001

11111111

--------

Результат: (1) 00000000

Игнорируя перенос (1), можно видеть, что двоичное число 11111111

эквивалентно десятичному -1 и соответственно:

0 00000000

-(+1) -00000001

---- --------

-1 11111111

Можно видеть также каким образом двоичными числами предcтавлены

уменьшающиеся числа:

+3 00000011

+2 00000010

+1 00000001

0 00000000

-1 11111111

-2 11111110

-3 11111101

Фактически нулевые биты в отрицательном двоичном числе определяют его

величину: рассмотрите позиционные значения нулевых битов как если это были

единичные биты, сложите эти значения и прибавьте единицу.

Данный материал по двоичной арифметике и отрицательным числам будет

особенно полезен при изучении гл.12 и 13.

ШЕСТНАДЦАТИРИЧНОЕ ПРЕДСТАВЛЕНИЕ

________________________________________________________________

Представим, что необходимо просмотреть содержимое некотоpых байт в

памяти (это встретится в следующей главе). Требуется oпределить содержимое

четырех последовательных байт (двух слов), которые имеют двоичные

значения. Так как четыре байта включают в себя 32 бита, то специалисты

разработали "стенографический" метод представления двоичных данных. По

этому методу каждый байт делится пополам и каждые полбайта выражаются

соответствующим значением. Рассмотрим следующие четыре байта:

Двоичное: 0101 1001 0011 0101 1011 1001 1100 1110

Десятичное: 5 9 3 5 11 9 12 14

Так как здесь для некоторых чисел требуется две цифры, расширим

систему счисления так, чтобы 10=A, 11=B, 12=C, 13=D, 14=E, 15=F. таким

образом получим более сокращенную форму, которая представляет содержимое

вышеуказанных байт:

59 35 B9 CE

Такая система счисления включает "цифры" от 0 до F, и так как таких

цифр 16, она называется шестнадцатиричным представлениeм. В табл.1.1.

приведены двоичные, десятичные и шестнадцатиричные значения чисел от 0 до

15.

__________________________________________________________________________

Двоич. Дес. Шест. Двоич. Дес. Шест.

0000 0 0 1000 8 8

0001 1 1 1001 9 9

0010 2 2 1010 10 A

0011 3 3 1011 11 B

0100 4 4 1100 12 C

0101 5 5 1101 13 D

0110 6 6 1110 14 E

0111 7 7 1111 15 F

__________________________________________________________________________

Табл.1.1. Двоичное, десятичное и шестнадцатиричное представления.

Шестнадцатиричный формат нашел большое применение в языке ассемблера.

В листингах ассемблирования программ в шестнадцатеричном формате показаны

все адреса, машинные коды команд и содержимое констант. Также для отладки

при использовании программы DOS DEBUG адреса и содержимое байтов выдается

в шестнадцатиричном формате.

Если немного поработать с шестнадцатиричным форматом, то можно быстро

привыкнуть к нему. рассмотрим несколько проcтых примеров шестнадцатиричной

арифметики. Следует помнить, что после шестнадцатиричного числа F следует

шестнадцатиричное 10, что равно десятичному числу 16.

6 5 F F 10 FF

4 8 1 F 10 1

- - -- -- -- ---

A D 10 1E 20 100

Заметьте также, что шест.20 эквивалентно десятичному 32, шест.100 -

десятичному 256 и шест.100 - десятичному 4096.

В данной книге шестнадцатиричные числа записываются, например, как

шест.4B, двоичные числа как дв.01001011, и десятичные числа, как 75

(отсутствие какого-либо описания предполагает десятичное число).

Исключения возможны, когда база числа очевидна из контекста. Для индикации

шест. числа в ассемблерной программе непосредственно после числа ставится

символ "H", например, 25H (десятичное значение 37). Шест. число всегда

начинается с деcятичной цифры 0-9, таким образом, B8H записывается как

0B8H.

В прил.2 показано как преобразовывать шестнадцатиpичные значения в

десятичные и обратно. Теперь расcмотрим некоторые характеристики

процессора PC, которые необxодимо понять для перехода к гл.2.

СЕГМЕНТЫ

________________________________________________________________

Сегментом называется область, которая начинается на границе

параграфа, т.е. по любому адресу, который делится на 16 без остатка. Хотя

сегмент может располагаться в любом месте памяти и иметь размер до 64

Кбайт, он требует столько памяти, cколько необходимо для выполнения

программы. Имеется три главных сегмента: