- •Министерство образования и науки
- •Теоретические сведения
- •1.1. Регистры
- •1.1.2. Регистры общего назначения
- •1.1.3. Сегментные регистры
- •1.2. Регистр флагов
- •1.3. Представление данных
- •1.3.1. Целые числа без знака
- •1.3.2. Целые числа со знаком
- •1.3.3. Представление символьных переменных
- •1.4. Лексемы
- •1.4.1. Идентификаторы
- •1.4.2. Целые числа
- •1.4.3. Символьные данные
- •1.5. Предложения
- •1.5.1. Комментарии
- •1.5.2. Команды
- •1.5.3. Директивы
- •1.6. Директивы определения данных
- •1.6.1. Директива db
- •1.6.2. Директива dw
- •1.6.3. Директива dd
- •1.6.4. Директивы эквивалентности и присваивания
- •1.7. Выражения
- •1.8. Обозначения
- •1.9. Команды пересылки
- •1.9.1. Команда mov
- •1.9.2. Команда xchg (exchange)
- •1.10. Команды сложения и вычитания
- •1.10.1. Особенности сложения и вычитания целых чисел в пк
- •1.10.2. Команды сложения и вычитания
- •Например: Mov ah, 1
- •1.11. Команды умножения и деления
- •1.11.1. Команды умножения
- •1.11.2. Команды деления
- •1.12. Изменение размеров числа
- •Задание
- •Контрольные вопросы
- •Литература
1.3.1. Целые числа без знака
Беззнаковые числа могут быть представлены в виде байта, слова или двойного слова – в зависимости от их размеров. Такие числа записываются в ячейки в двоичной системе счисления, занимая все разряды ячейки. Например, если для целого числа 98 отведен байт, то содержимым байта будет двоичное число 01100010 (62h), а если слово, то 0062h.
Поскольку в ячейке из К разрядов можно записать 2К различных комбинаций из нулей и единиц, то в виде байта можно представить целые от 0 до 255 (=28–1), в виде слова – целые от 0 до 65535 (=216-1), в виде двойного слова – целые от 0 до 4294967295 (=232-1).
Особенности хранения чисел в ПК.Числа размером со слово и двойное слово хранятся в памяти в «перевернутом» виде. Например, число 98 =0062h хранится в памяти так:
А А+1
|
00 |
Двойное слово 1345678h хранится так:
A A+1 A+2 A+3
-
78
56
34
12
Следует отметить, в регистрах числа, размером в слово хранится в нормальном, не перевернутом виде – за этим следят команды пересылки.
1.3.2. Целые числа со знаком
Эти числа можно представить в виде байта (от - 128 до +128) , слова (от – 32 768 до +32 767) и двойного слова (от – 2 147 483 648 до +2 147 483 647).
ВПК знаковые числа записываются в дополнительном коде: не отрицательное число записывается так же, как и беззнаковое число, а отрицательное Х представляется беззнаковым числом 2К- /Х/, где К – количество разрядов в ячейке, отведенной под число:
Например, дополнительным кодом числа +98 будет байт 62h или слово 0062h, а дополнительным кодом числа –98 – байт 9Eh (=158=256-98) или слово FF9Eh (=216-98=10000h-62h).
Еще примеры (при ячейке в байт)
доп(0)=0=00000000
доп(1)=1=00000001 доп(-1)=256-1=255=11111111
доп(2)=2=00000010 доп(-2)=256-2=254=11111110
доп(3)=3=00000011 доп(-3)=256-3=253=11111101
доп(+126)=126=01111110 доп(-126)=256-126=130=10000010
доп(+127)=127=01111111 доп(-127)=256-127=129=10000001
доп(+128)=128=10000000 доп(-128)=256-128=128=10000000
На этих примерах видно, что в дополнительном коде самый левый бит играет роль знакового; 0 для неотрицательных чисел, а для отрицательных –1.
Как и беззнаковые, знаковые числа размером в слово и двойное слово записываются в памяти в перевернутом виде. При этом знаковый бит оказывается во втором (правом) байте слова.
1.3.3. Представление символьных переменных
Вместо символа в памяти ПК хранится его код, записанный в двоичной системе. Под код символа отводится один байт (можно закодировать 256 различных символов).
Что касается машинного представления строк (последовательности символов), то под каждую стоку отводят нужное число соседних байтов памяти, в которые записываются коды символов, образующих строку. Адрес первого из них считается адресом строки. Эта последовательность записываются в нормальном «не перевернутом» виде.