ХАНДЫФАР

Инструкция SAHF

Сохранить AH в регистре флагов FLAGS


SAHF - Загрузить SF, ZF, AF, PF и CF из AH в регистр FLAGS.


Загружает флаги SF, ZF, AF, PF и CF регистра FLAGS значениями из соответствующих битов регистра ah (биты 7, 6, 4, 2 и 0 соответственно). Биты 1, 3 и 5 регистра ah игнорируются.


Флаги SF, ZF, AF, PF и CF загружаются значениями из регистра ah. Биты 1, 3 и 5 регистра FLAGS остаются неизменными, при этом значения остаются 1, 0 и 0 соответственно.


  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. code segment public
  5. ____assume cs:code
  6. ____main proc
  7. ________lahf ;;;_______* *
  8. ________;;;_________SZ A P C
  9. ________xor_____ah, 00010100b
  10. ________sahf
  11. ________lahf ;;;_____*_____*
  12. ________;;;_________SZ A P C
  13. ________xor_____ah, 01010101b
  14. ________sahf
  15. ________lahf ;;;____*______*
  16. ________;;;_________SZ A P C
  17. ________xor_____ah, 11000000b
  18. ________sahf
  19. ________mov_____ax, 4C00h
  20. ________int_____21h
  21. ____main endp
  22. code ends
  23. end main
Инструкция SAHF

Сохранить AH в регистре флагов FLAGS


SAHF - Загрузить SF, ZF, AF, PF и CF из AH в регистр FLAGS.


Загружает флаги SF, ZF, AF, PF и CF регистра FLAGS значениями из соответствующих битов регистра ah (биты 7, 6, 4, 2 и 0 соответственно). Биты 1, 3 и 5 регистра ah игнорируются.


Флаги SF, ZF, AF, PF и CF загружаются значениями из регистра ah. Биты 1, 3 и 5 регистра FLAGS остаются неизменными, при этом значения остаются 1, 0 и 0 соответственно.


  1. title Автор: Довгополов Евгений Сергеевич
  2. .model small
  3. .stack 100h
  4. code segment public ___________; Начало сегмента кода
  5. ____assume cs:code
  6. ____main proc _________________; Начало процедуры main
  7. ________lahf ;;;_______* *_____; Загружаем состояние флагов FLAGS в регистр ah
  8. ________;;;_________SZ A P C
  9. ________xor_____ah, 00010100b__; Включаем флаги PF и AF
  10. ________sahf___________________; Сохраняем новое значение флагов в регистр FLAGS
  11. ________lahf ;;;_____*_____*___; Загружаем состояние флагов FLAGS в регистр ah
  12. ________;;;_________SZ A P C
  13. ________xor_____ah, 01010101b__; Включаем флаги CF и ZF, остальные выключаем
  14. ________sahf___________________; Сохраняем новое значение флагов в регистр FLAGS
  15. ________lahf ;;;____*______*___; Загружаем состояние флагов FLAGS в регистр ah
  16. ________;;;_________SZ A P C
  17. ________xor_____ah, 11000000b__; Включаем флаги SF и CF, остальные выключаем
  18. ________sahf___________________; Сохраняем новое значение флагов в регистр FLAGS
  19. ________mov_____ax, 4C00h______; Копируем значение функции завершения процесса в ah а значение в al
  20. ________int_____21h ___________; Вызываем прерывание DOS
  21. ____main endp _________________; Конец процедуры main
  22. code ends _____________________; Конец сегмента кода
  23. end main ______________________; Конец файла. Точкой входа указывается процедура main
Made on
Tilda