Программирование на JAVA

6.4.3. Программа упаковки цифр

В качестве простого примера использования указанных команд давайте рассмот­рим программу упаковки цифр. Код этой програм­мы для процессоров IA-32 вы видите на рис. 6.4. Два байта ASCII загружаются в регистры AL и BL Команда SHL сдвигает байт в регистре AL на четыре позиции влево, заполняя четыре освободившихся младших бита нулями. Посредством второго операнда этой команды задается количество разрядов, на которое должен быть сдвинут первый операнд. Команда AND очищает четыре старших бита вто­рого байта, записывая в них нули. После этого 4-разрядные значения, представ­ляющие BCD-коды чисел, объединяются командой OR в регистре AL, а затем со­храняются в памяти по адресу PACKED.


Рис. 6.4. Программа для процессоров IA-32, упаковывающая две цифры BCD в один байт

Другие команды

Мы рассмотрели лишь малую часть набора команд архитектуры IA-32. Еще не­сколько важных команд будут представлены ниже.

Вычитание

Команда SUB (вычитание), так же как и ADD выполняет вычитание байтов или слов, содержащих двоичные данные. Вычитание осуществляется в компьютере по методу сложения с двоичным дополнением: для второго операнда устанавливаются обратные значения битов и прибавляется  1, а затем происходит сложение с первым операндом


<< назад вперед >>