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



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

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


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

Натуральные операции и указатели

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

CF (флаг свитча): В случае если в результате сложения осуществляется сдвиг из главного байта, знак свитча взводится; в противном случае флаг переноса сбрасывается. При вычитании флаг переноса возводится, в случае если свершается заимствование в главный байт результата; при нехватке заема знак сбрасывается. Необходимо иметь в виду, что при появлении меточного переноса SC != VJ (знак заполнения). Знак свитча АР может использоваться для показа беззнакового восполнения.

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


назад