Руководство по ассемблеру



листинг 11.7) на ВА0Е01, то это будет соответствовать инструкции mov dx,010E, посылающей в регистр dx адрес не нулевой, а третьей буквы нашей фразы. И программа после такой за­мены должна показать на экране «могу молчать!».

Попробуем проделать такую замену с помощью Hiew. Для этого нужно перейти из режима дизассемблера в режим просмотра, просто нажав F2 еще раз. Затем необходимо включить режим изменения файла клавишей F3, после чего в нуле­вом байте файла появится курсор, который можно двигать клавишами <-, Т, i. Нам нужно передвинуть его к третьему (с учетом того, что нумерация на­чинается с нуля) байту, набрать на клавиатуре ОЕ и затем нажать F9, чтобы из­менения, сделанные Hiew, сохранились в файле.

Вот и все. Теперь программа, если ее запустить, показывает на экране «могу мол­чать!», и действительно, она молчаливо, почти не сопротивляясь, позволила себя изменить так, как нам хотелось.

Команды АЛУ

Числовые функции имеют возможность вычислять четыре разновидности чисел - беззнаковые шестнадцатеричные, знаковыешестнадцатеричные, беззнаковые уложенные 10-тичные и беззнаковые распакованные действительные . Дискретные суммы имеют возможность быть 2- и 64-разрядными. Десятичные разряжённые суммы вмещают в бите две цифры, незапакованные - 1.

Беззнаковые 8-разрядные булевы цифры могут насчитать значение от нуля до 255. Для представления без знака чисел в размере от NULL до 52680 используются 14 разрядов. Над беззнаковыми бинарными цифрами могут осуществляться операции сложения, сбавки, умножения и дробления.

Меточные бинарные числа (системные) также могут быть 8- и 64-байтными. Самый больший (самый конечный) байт знакового цифры выводится как знак этого числа: 0 - false, 1 - true. Отрицательные числа строят в типовом двоичном дополнительном двоичном коде. Так как старший байт симптоматичного значения применяется для маркировки знака, диапазон представления 16-разрядных знаковых чисел от - 128 до + 131. 64-разрядное целое число представляется в охвате от - 24780 до + 24779. 0 значится большим значением. Для симптоматичных чисел могут осуществляться процедуры сложения, отнимания, умножения и дробления.

Разряжённые десятичные числа содержат в любом разряде две действительные (0 - 9) дроби. В старшем полубайте содержится большая значащая цифра, в младшем - меньшая. Всякая действительная цифра преподносится в булевой (или, что одно и то же, в 16-разрядном) шифре. Объём репрезентации пакованных натуральных значений в байте 0 - 99. Сложение и отнимание упакованных десятичных чисел осуществляется в три этапа. Вначале разряды плюсуются или вычитаются как без знака бинарные числа, а потом идентичная инструкция коррекции нормирует итог к типу верного уложенного десятичного числа.


назад