|
||||
|
54. Арифметические команды Такие команды работают с двумя типами: 1) целыми двоичными числами, то есть с числами, закодированными в двоичной системе счисления. Десятичные числа – специальный вид представления числовой информации, в основу которого положен принцип кодирования каждой десятичной цифры числа группой из четырех бит. Микропроцессор выполняет сложение операндов по правилам сложения двоичных чисел. В системе команд микропроцессора имеются три команды двоичного сложения: 1) inc операнд – увеличение значения операнда; 2) add операнд1, операнд2 – сложение; 3) adc операнд1,операнд2 – сложение с учетом флага переноса cf. Вычитание двоичных чисел без знака Если уменьшаемое больше вычитаемого, то разность положительна. Если уменьшаемое меньше вычитаемого, возникает проблема: результат меньше 0, а это уже число со знаком. После вычитания чисел без знака нужно анализировать состояние флага CF. Если он установлен в 1, то произошел заем из старшего разряда и результат получился в дополнительном коде. Вычитание двоичных чисел со знаком Но для вычитания способом сложения чисел со знаком в дополнительном коде необходимо представлять оба операнда – и уменьшаемое, и вычитаемое. Результат тоже нужно рассматривать как значение в дополнительном коде. Но здесь возникают сложности. Прежде всего они связаны с тем, что старший бит операнда рассматривается как знаковый. По содержимому флага переполнения of. Его установка в 1 говорит о том, что результат вышел за диапазон представления знаковых чисел (т. е. изменился старший бит) для операнда данного размера, и программист должен предусмотреть действия по корректировке результата. Принцип вычитания чисел с диапазоном представления, превышающим стандартные разрядные сетки операндов, тот же, что и при сложении, т. е. используется флаг переноса cf. Нужно только представлять себе процесс вычитания в столбик и правильно комбинировать команды микропроцессора с командой sbb. Для умножения чисел без знака предназначена команда mul сомножитель_1 Для умножения чисел со знаком предназначена команда [imul операнд_1, операнд_2, операнд_3] Для деления чисел без знака предназначена команда div делитель Для деления чисел со знаком предназначена команда idiv делитель |
|
||
Главная | Контакты | Нашёл ошибку | Прислать материал | Добавить в избранное |
||||
|