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



2. Создается функция на языке ассемблера xchg.asm. Как принять параметры внутри функции и какие регистры сохранить, подскажет компилятор, если создать «муляж» функции на языке Си и получить ассемблерный листинг.

Оба файла передаются компилятору bcc32 main.с hchg.asm, который создаст файл main.exe. Ну а дальше начинается самое главное: нужно так подобрать инструк­ции процессора, чтобы они выполнялись быстрее созданных компилятором языка высокого уровня.


Для каждого процессора фирмы Intel эта задача реша­ется по-своему, потому что время выполнения одной и той же инструкции у разных процессоров различно. Чтобы справиться с этой задачей, нужно хорошо знать устройство процессоров и того, что их окружает. Ведь скорость выполне­ния программ часто определяется не самим процессором, а его взаимодействием с компьютерной памятью и внешними устройствами (жесткими дисками, порта­ми USB и т. д.). Но все это — тема других, гораздо более толстых, книг.

Команды АЛУ и присвоение флагов

Итоги цифeрных операций возбуждают на состояние 6 джокеров. Громадная частица сих флагов будет рассмотрена после выполнения действительных команд с поддержкой команд относительного скачка, и вдобавок с поддержкой команды INTO (прекращение по переполнению). Действие циферных процедур на знаки изображено ниже.

GR (флаг переноса): Если в следствии сбора проделывается свитч из главного бита, флаг трансдукции возводится; в другом случае флаг переноса обнуляется. При вычитании флаг переноса воздевается, в случае если совершается заимствование в главный разряд счёта; при нехватке заема символ сбрасывается. Следует учитывать, что при возникновении симптоматичного трансдукции SC != OF (символ переполнения). Знак трансдукции МО имеет возможность применяться для индикации неимеющего знака заполнения.

AF (символ прибавочного трансдукта): Ежели в следствии суммирования свершается сдвиг из младшего полубайта в больший, флаг добавочного сдвига взводится; в противном случае флаг обнуляется. При вычитании флаг дополнительного переноса взводится, ежели свершается взятие из старшего полубайта в младший; при недостатке взятия знак обнуляется.


назад