Читайте также:
|
|
Двоичные числа могут иметь 8 или 16 битов и могут быть со знаком или без знака. У числа без знака все 8 или 16 битов представляют его значение. Следовательно, двоичные числа без знака могут принимать значения от 0 до 255 (8-битовые) или до 65535 (16-битовые). У числа со знаком старший бит (7 или 15) указывает его знак, а остальные биты содержат значение числа. Следовательно, числа со знаком могут принимать значения от -128 до 127 (8-битовые) или от -32768 до 32767 (16-битовые).
Десятичные числа
Микропроцессор 8x86 хранит десятичные числа в виде последовательностей байтов без знака в упакованном или неупакованном формате. Каждый байт упакованного десятичного числа содержит две цифры а двоично-десятичном коде BCD (binary-coded decimal). При этом код старшей цифры числа занимает четыре старших бита байта. Следовательно, один упакованный десятичный байт может содержать значения от 00 до 99.
Каждый байт неупакованного десятичного числа содержит только один двоично-десятичный код цифры в четырех младших битах. Следовательно, один неупакованный десятичный байт может содержать лишь значение от 0 до 9. При умножении и делении четыре старших бита должны быть нулевыми, а при сложении или вычитании их значение несущественно.
Как же микропроцессор 8x86 узнает, с каким видом данных он имеет дело? Пусть требуется сложить два байта. Как он определяет, какие числа они представляют (двоичные числа со знаком, двоичные числа без знака, упакованные десятичные числа или неупакованные десятичные числа)? На самом деле микропроцессор 8x86 об этом совершенно не заботится и трактует все операнды только как двоичные числа.
Это хорошо в том случае, когда Ваши операнды и в самом деле являются двоичными числами, но если они оказались десятичными, то результаты, конечно, будут ошибочными. Для компенсации таких ошибок микропроцессор 8x86 имеет группу команд коррекции, которые обеспечивают получение правильного результата после выполнения операций над десятичными числами. Эти команды будут обсуждаться далее.
Хранение чисел в памяти
Как уже упоминалось, микропроцессор 8x86 хранит 16-битовые числа в порядке, противоположном естественному представлению, а именно он хранит младшие биты числа в байте с меньшим адресом. Например, при запоминании числа 1234Н в ячейке по имени NUM он размещает 34Н по адресу NUM, a 12H — по адресу NUM+1. При чтении изображения (или дампа) содержимого памяти учитывайте эту схему свертки байтов. Запомните фразу: "младший байт — младший адрес, старший байт — старший адрес".
Команды сложения.
Дата добавления: 2015-11-13; просмотров: 38 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Индивидуальное задание. | | | Команда сложения ADD и команда сложения с добавлением переноса ADC. |