Команды перехода
Команды перехода
Как говорилось в начале главы, команды условного перехода — это то, что отличает фон-неймановский процессор от непроцессора или, в крайнем случае, от не фон-неймановского процессора. Большинство современных процессоров имеет обширный набор команд условного перехода по различным арифметическим условиям и их комбинациям.
Арифметические флаги выставляются в соответствии с результатами последней арифметической и логической операции. Типичный набор арифметических флагов — это бит переноса, бит нуля (выставляется, если все биты результата равны нулю), знаковый бит (если равен нулю старший бит результата) и бит переполнения. В процессорах первых поколений нередко использовался обратный подход: процессор имел всего один флаг условия перехода (так называемый ы-признак) и одну команду условного перехода, зато несколько команд сравнения, придававших этому флагу различную семантику.
Набор команд перехода, приведенный в табл. 2.1, несколько шире обычного — команды SBRC/SBRS для процессоров общего назначения нетипичны.
Микроконтроллеры PIC (по-видимому, самая экстравагантная система команд среди современных промышленно выпускаемых процессоров) имеют всего две команды, выполняющие функции команд условного перехода: BTFCS (Bit Test, Skip if Set — проверить бит и, если он установлен, пропустить следующую команду) и BTFCC (Bit Test, Skip if Clear, пропустить следую-шую команду, если бит сброшен). Объектом проверки может служить любой бит любого регистра процессора, в том числе и биты арифметических условий статусного слова. Для реализации условного перехода следом за такой командой нужно разместить команду безусловного перехода. Именно таким образом ассемблеры для этого микроконтроллера реализуют псевдокоманды условных переходов.