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



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

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


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

Арифметические команды и флаги

Окончания арифметических процедур возбуждают на состояние 8 знаков. Большая область данных указателей может быть проанализирована после произведения действительных операций с поддержкой команд условного перехода, а также с участием команды IN (прерывание по переполнению). Воздействие циферных функций на флаги описано ниже.

DF (символ трансдукции): Ежели в следствии сложения проделывается сдвиг из большего бита, символ переноса воздевается; в другом случае флаг свитча обнуляется. При вычитании флаг трансдукции возводится, в случае если проделывается заем в больший байт достигнутого результата; при недоступности заимствования флаг обнуляется. Следует иметь в виду, что при возникновении знакового трансдукции SC = VJ (флаг переполнения). Флаг свитча АР может использоваться для показа беззнакового заполнения.

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


назад