
- •140010, Г. Люберцы, Московской обл., Октябрьский пр-т, 403.
- •Глава 1. Архитектура реального режима
- •1.1. Память и процессор
- •Глава 1
- •Глава 1
- •1.2. Распределение адресного пространства
- •Глава 1
- •1.3. Регистры процессора
- •Глава 1
- •Глава 1
- •9 7H Шестнадцатернчное обозначение числа
- •Глава 1
- •1.4. Сегментная структура программ
- •Глава 1
- •Глава 1
- •Глава 1
- •1.5. Стек
- •Глава 1
- •1.6. Система прерываний
- •Глава 1
- •Глава I
- •1.7. Система ввода-вывода
- •Глава I
- •Глава 1
- •Глава 2. Основы программирования
- •2.1. Подготовка и отладка программы
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •2.2. Представление данных
- •Глава 2
- •Глава 2
- •2.3. Описание данных
- •Глава 2
- •Глава 2
- •2.4. Структуры и записи
- •Глава 2
- •Глава 2
- •2.5. Способы адресации
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •2.7. Вызовы подпрограмм
- •Глава 2
- •2.8. Макросредства ассемблера
- •Глава 2
- •Глава 2
- •Глава 2
- •Глава 3. Команды и алгоритмы
- •Глава 3
- •Глава 3
- •Глава 3
- •Глава 3
- •Глава 3
- •Глава 3
- •Глава 3
- •Глава 3
- •3.2. Циклы и условные переходы
- •Глава 3
- •Глава 3
- •3.3. Обработка строк
- •Глава 3
- •3.4. Использование подпрограмм
- •Глава 3
- •Глава 3
- •3.5. Двоично-десятичные числа
- •Глава 3
- •Глава 3
- •3.6. Программирование аппаратных средств
- •Глава 3
- •37Ah Порт управлсш!я
- •Глава 3
- •Глава 3
- •Глава 4. Расширенные возможности
- •4.1. Архитектурные особенности
- •Глава 4
- •4.2. Дополнительные режимы адресации
- •Глава 4
- •4.3. Использование средств 32-разрядных процессоров в программировании
- •Глава 4
- •Глава 4
- •Глава 4
- •4.4. Основы защищенного режима
- •Глава 4
- •Глава 4
- •Глава 4
- •Глава 4
- •Idiv Деление целых чисел со знаком
- •Imul Умножение целых чисел со знаком
- •In Ввод из порта
- •Inc Инкремент (увеличение на 1)
- •Int Программное прерывание
- •Into Прерывание по переполнению
- •Iret Возврат из прерывания
- •1 Lods Загрузка операнда из строки : lodsb Загрузка байта из строки lodsw Загрузка слова из строки
- •Операнд
- •Xadd память, регистр
- •Xchg Обмен данными между операндами
- •Xlat Табличная трансляция
- •Xor Логическое исключающее или
- •Содержание
Глава 2
16-ричное Десятичное представление: представление Без знака Со знаком |
|||
OOOOh |
00000 |
00000 Ноль |
|
OOOlh |
00001 |
+00001 |
Минимальное положительное число |
0002h |
00002 |
+00002 |
|
0003h |
00003 |
+00003 |
|
0004h |
00004 |
+00004 |
|
7FFCh |
32764 |
+32764 |
?• Диапазон положительных чисел |
7FFDh |
32765 |
+32765 |
|
7FFEh 7FFFh 8000h |
32766 32767 32768 |
+32766 +32767 -32768 |
Максимальное положительное число Максимальное отрицательное число |
SOOlh |
32769 |
-32767 |
|
8002h |
32770 |
-32766 |
|
8003h |
32771 |
-32-765 |
|
FFFBh |
65531 |
-00005 |
* Диапазон отрицательных чисел |
FFFCh - |
65532 |
-00004 |
|
FFFDh |
65533 |
-00003 |
|
FFFEh FFFFh |
65534 65535 |
-00002 -00001 - |
Минимальное отрицательное число |
Рис. 2.9. Представление 16-битовых чисел без знака и со знаком.
Минимальное отрицательное число
Диапазон отрицательных чисел
Максимальное положительное число?! Максимальное отрицательное число -|
Диапазон положительных чисел
Ноль
Минимальное положительное число
На рис. 2.10 представлена аналогичная таблица для 8-битовых чисел. Из таблицы видно, что для чисел со' знаком размером в байт диапазон положительных значений простирается от 0 до 127, а диапазон отрицательных значений — от -1 до -128.
16-ричное Десятичное представление: представление Без знака Со знаком |
||
OOh |
000 |
000 |
Olh |
001 |
+ 001 |
02h |
002 |
+ 002 |
03h |
003 |
+ 003 |
04h |
004 |
+ 004 |
7Ch |
124 |
+ 124 |
7Dh |
125 |
- +125 |
7 Eh |
126 |
+ 126 |
7Fh |
127 |
+ 127 |
80h |
128 |
-128 |
81h |
129 |
-127 |
82h |
130 |
-126 |
83h |
131 |
-125 |
FBh |
251 |
-005 |
FCh |
252 |
-004 |
FDh |
253 |
-003 |
FEh |
254 |
-002 |
FFh |
255 |
-001 |
Рис. 2.10. Представление 8-битовых чисел без знака и со знаком.
53
Основы программирования
Среди команд процессора, выполняющих ту или иную обработку чисел, можно выделить команды, безразличные к знаку числа (например, inc, add, test), команды, предназначенные для обработки чисел без знака (mul, div, ja, jb и др.), а также команды, специально рассчитанные на обработку чисел со знаком (imul, idiv, jg, jl и т.д.). Особенности использования этих команд будут описаны в следующей главе.
Рассмотрим теперь другой вид представления чисел — двоично-десятичный формат (binary-coded decimal , BCD), используемый в ряде прикладных областей. В таком формате выдают данные некоторые измерительные приборы; он же используется КМОП-часами реального времени компьютеров IBM PC для хранения информации о текущем времени. В МП 86 предусмотрен ряд команд для обработки таких чисел.
Двоично-десятичный формат существует в двух разновидностях:, упакованный и распакованный. В первом случае в байте записывается двухразрядное десятичное число от 00 до 99. Каждая цифра числа занимает половину байта и хранится в двоичной форме. Из рис. 2.11 можно заметить, что для записи в байт десятичного числа в двоично-десятичном формате достаточно сопроводить записываемое десятичное число символом h.
10000110 Двоичное содержимое банта
8 6 Десятичное обозначение числа
8 6h Шестнадцатеричное обозначение числа
Рис. 2.11. Упакованный двоично-десятичный формат.
В машинном слове или в 16-разрядном регистре можно хранить в двоично-десятичном формате четырехразрядные десятичные числа от 0000 до 9999 (рис.2.12).
1001 0110 0000 0100 Двоичное содержимое слова
9604 Десятичное обозначение числа
9 6 0 4h Шестнадцатеричное обозначение числа
Рис. 2.12. Запись десятичного числа 9604 в слове.
Распакованный формат отличается от упакованного тем, что в каждом байте записывается лишь одна десятичная цифра (по-прежнему в двоичной форме). В этом случае в слове можно записать десятичные числа от 00 до 99 (см. рис. 2.13)
00001001 00001000 Двоичное содержимое слова
9 8 Десятичное обозначение числа
09 0 8h Шестнадцатеричное обозначение числа Рис. 2.13. Запись десятичного числа 98 в распакованном виде.
54