Предыдущая глава ВЫВОД НА ЭКРАН ДВОИЧНЫХ ЧИСЕЛ Следующий раздел

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

В ходе решения указанной задачи нам потребуется рассмотреть новые машинные команды, а также произвести знакомство с новыми понятиями. При этом мы начнем с более близкого знакомства с одним из битов рассмотренного ранее регистра FLAGS – флага переноса.

 

5.1. Флаг переноса

Если выполнить сложение чисел 1 и FFFFh, то получим 10000h. Это число не может быть записано в шестнадцатибитное слово, так как в нем помещаются только четыре шестнадцатеричные цифры. Единица в результате называется переполнением. Она записывается в специальную ячейку, называемую флагом переноса CF (от "Carry Flag"). Флаг содержит число, состоящее из одного бита, т.е. содержит или единицу, или ноль. Если флаг содержит единицу, то говорят, что он "установлен", а если ноль – "сброшен". Напомним, что флаг CF является одним из шестнадцати битов в регистре флагов FLAGS.

В ы п о л н и т е  загрузку чисел 1 и FFFFh  в регистры ВХ и АХ и запишите в память команду “add ax,bx”. После этого протрассируйте эту команду. В конце второй строки распечатки, полученной с помощью команды R Debug, вы увидите восемь пар букв. Последняя пара выглядит как CY (от "Carry Ye" – перенос есть), т.е. флаг переноса установлен.

У с т а н о в и т е  IP в 100h и прибавьте единицу к нулю в АХ, повторив трассировку команды сложения. Флаг переноса переустанавливается в каждой операции сложения, и так как на этот раз переполнения не будет, то флаг будет сброшен. C помощью команды R проверьте, что в качестве состояния флага CF листинг содержит  NC ("от No Carry" – нет переноса).

 


Предыдущая глава В начало Следующий раздел