Cтраница 3
Например, при логическом сдвиге вправо в старшем разряде кода операнда устанавливается нуль, а младший разряд записывается в качестве флага переноса в регистр состояния процессора. А при арифметическом сдвиге вправо значение старшего разряда сохраняется прежним ( нулем или единицей), младший разряд также записывается в качестве флага переноса. [31]
Команда INC ( increment - прирастить) добавляет 1 к содержимому регистра или ячейки памяти, но в отличие от команды ADD не воздействует на флаг переноса CF. Команда INC удобна для приращения значений счетчиков в циклах команд. [32]
Команды SUB ( substract - вычесть) и SBB ( substract with borrow - вычесть с заемом) аналогичны соответственно командам сложения ADD и ADC, только при вычитании флаг переноса CF действует как признак заема. [33]
Команда DEC ( decrement - уменьшить) вычитает 1 из содержимого регистра или ячейки памяти, но при этом ( в отличие от команды SUB) не воздействует на флаг переноса CF. Команда DEC часто используется в циклах для уменьшения значения счетчика до тех пор, пока оно не станет нулевым или отрицательным. [34]
![]() |
Функциональное назначение выводов микропроцессора КР580ВМ80А. [35] |
Установка флагов производится при выполнении следующих условий: флаг знака S, если знаковый бит результата операции равен 1; флаг нуля Z, если результат операции равен 0; флаг дополнительного переноса АС при наличии переноса из третьего разряда; флаг четности Р, если результат содержит четное число единиц; флаг переноса CY при наличии переноса ( при сложении) или заема ( при вычитании) из старшего разряда результата. [36]
У микропроцессора 8088 есть 17 различных команд, которые позволяют ему принять решение о ходе исполнения программы в зависимости от определенных условий, например нулевого значения регистра или единичного значения флага переноса CF. Если такое условие выполнено, то микропроцессор 8088 выполнит переход; в противном случае он продолжит исполнение со следующей команды программы. Как показано в табл. 3.9, некоторые из этих команд имеют два или три различных мнемокода. Если учитывать эти альтернативные мнемокоды, то можно было бы заявить, что микропроцессор 8088 имеет 31 команду условной передачи управления. [37]
Из его 16 разрядов используются только девять ( рис. 3.11): CF ( Carry Flag) - флаг переноса при арифметических операциях, PF ( Parity Flag) - флаг четности результата, AF ( Auxiliary Flag) - флаг дополнительного переноса, ZF ( Zero Flag) - флаг нулевого результата, SF ( Sign Flag) - флаг знака ( совпадает со старшим битом результата), TF ( Trap Flag) - флаг пошагового режима ( используется при отладке), IF ( Interrupt-enable Flag) - флаг разрешения аппаратных прерываний, DF ( Direction Flag) - флаг направления при строковых операциях, OF ( Overflow Flag) - флаг переполнения. [38]
![]() |
Функциональное назначение выводов микропроцессора КР580ВМ80А. [39] |
Установка флагов производится при выполнении следующих условий: флаг знака S, если знаковый бит результата операции равен 1; флаг нуля Z, если результат операции равен 0; флаг дополнительного переноса АС при наличии переноса из третьего разряда; флаг четности Р, если результат содержит четное число единиц; флаг переноса CY при наличии переноса ( при сложении) или заема ( при вычитании) из старшего разряда результата. [40]
Результат помещается в аккумулятор. Сбрасывается флаг переноса CY, устанавливается флаг вспомогательного переноса АС. [41]
Результат помещается в аккумулятор. Сбрасываются флаги переноса CY и вспомогательного переноса АС. [42]
При этом в кольцо сдвига может входить или не входить флаг переноса. В бит флага переноса ( если он используется) записывается значение старшего бита при циклическом сдвиге влево и младшего бита при циклическом сдвиге вправо. [43]
Содержимое аккумулятора сдвигается на одну позицию вправо через бит флага переноса CY. Старший бит аккумулятора устанавливается равным флагу переноса, а флаг переноса - равным младшему биту аккумулятора. [44]
Содержимое аккумулятора сдвигается на одну позицию вправо через бит флага переноса CY. Старший бит аккумулятора устанавливается равным флагу переноса, а флаг переноса - равным младшему биту аккумулятора. [45]