Основные команды языка ASSEMBLER
### Регистр флажков ######################################################
¦--- старший байт ----¦--- младший байт ----¦
+-----------------------------------------------+
¦ х х х х OF DF IF TF SF ZF х AF х PF х CF¦
+-----------------------------------------------+
### х - состояние битов не определено (зарезервированы).
### OF - флажок ПЕРЕПОЛНЕНИЯ Устанавливается арифметическими операциями.
---------------------------- Используется для определения переполнения
в операциях с числами, представленными в
дополнительном коде.
Если OF = 1, то результат арифметической
операции вышел за допустимые пределы:
- 128 : байт : + 127
- 32768 : слово : + 32767
### DF - флажок НАПРАВЛЕНИЯ Устанавливается командами CLD и STD.
---------------------------- Используется в командах обработки строк
для указания направления продвижения по
строке данных.
Если DF = 0, то строка сканируется от
меньших адресов к большим.
### IF - флажок ПРЕРЫВАНИЙ Устанавливается командами CLI и STI.
---------------------------- Используется для запрещения ВНЕШНИХ
прерваний (ЗА ИСКЛЮЧЕНИЕМ НЕМАСКИРУЕМЫХ).
Для блокировки отдельных прерываний
используется специальный регистр масок.
Если IF = 0, то прерывания не возникают.
### TF - флажок ТРАССИРОВКИ Устанавливается комбинацией команд через
---------------------------- стек (смотрите применение команды PUSHF).
Используется для перевода микропроцессора
в одношаговый режим. После каждой команды
автоматически генерируется внутреннее
прерывание с переходом к подпрограмме
обработки, написанной программистом.
Если TF = 1, включен режим трассировки.
### SF - флажок З Н А К А Устанавливается арифметическими операциями.
---------------------------- Используется для определения знака числа
в знаковой арифметике по старшему биту
результата операции.
Если SF = 1, то результат отрицательный.
### ZF - флажок Н У Л Я Устанавливается арифметическими операциями.
---------------------------- Показывает был ли равен нулю результат
последней операции.
Если ZF = 1, то результат равен нулю.
### AF - флажок ПЕРЕНОСА Устанавливается арифметическими операциями.
-------- (ДОПОЛНИТЕЛЬНОГО) Используется в командах десятичной
------------------- арифметики. Фиксирует перенос из младшей
тетрады результата в старшую.
Если AF = 1, то произошел перенос.
### PF - флажок ЧЕТНОСТИ Устанавливается арифметическими операциями.
---------------------------- Используется для контроля правильности
передачи данных. Фиксирует наличие четного
количества единиц в младших 8 битах
результата последней операции.
Если PF = 1, то количество единиц четное.
### CF - флажок ПЕРЕНОСА Устанавливается арифметическими операциями.
---------------------------- Используется для определения переноса (при
сложении) или заема (при вычитании), а
также значения выдвигаемого бита после
операций сдвигов.
Если CF = 1, то произошел перенос (заем).
### Команда LAHF #########################################################
### Передает младший байт регистра флажков в регистр АН.
15----------------------7-----------------------0
¦ старший байт ¦SF ZF AF PF CF¦
+-----------------------------------------------+
¦
15----------------------7----------------------0
¦ AH ¦ AL ¦
+----------------------------------------------+
### Регистр флажков не модифицируется.
### Формат команды:
7 0
+-------------------------+ l = 1 байт +----------------+
¦ LAHF ¦ t = 4 такта ¦ 10011111 ¦
+-------------------------+ +----------------+
### Примечание:
Перевод системы команд МП 8080 в систему МП 8086. Слово состояния
МП 8080 (PSW) образуется регистром флажков и аккумулятором и используется
в команде PUSH PSW МП 8080, которую эмулирует команда LAHF МП 8086:
LAHF
PUSH AX - эквивалентно - PUSH PSW
### Команда SAHF #########################################################
### Передает содержимое регистра АН в младший байт регистра флажков.
15----------------------7----------------------0
¦ AH ¦ AL ¦
+----------------------------------------------+
¦
15----------------------7-----------------------0
¦ старший байт ¦SF ZF AF PF CF¦
+-----------------------------------------------+
### Младший байт регистра флажков принимает значение, извлеченное из
регистра AH.
### Формат команды:
7 0
+-------------------------+ l = 1 байт +----------------+
¦ SAHF ¦ t = 4 такта ¦ 10011110 ¦
+-------------------------+ +----------------+
### Примечание:
Перевод системы команд МП 8080 в систему МП 8086. Слово состояния
МП 8080 (PSW) образуется регистром флажков и аккумулятором и используется
в команде POP PSW МП 8080, которую эмулирует команда SAHF МП 8086:
POP AX
SAHF - эквивалентно - POP PSW
[ ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ ]
|