Предыдущий раздел РЕДАКТИРОВАНИЕ ИНФОРМАЦИИ В ОП Следующая глава

15.4. Запись шестнадцатеричной цифры

Алгоритм процедуры Write_digit_sector, выполняющей запись в переменную Sector шестнадцатеричной цифры, приведен на рис.51.

Процедура Write_digit_sector имеет единственный входной параметр – в регистре DL передается величина шестнадцатеричной цифры, которая должна быть записана в позицию переменной Sector, на которую указывает курсор.

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

 

Рис. 51. Алгоритм процедуры Write_digit_sector

Где:

B – номер байта в переменной Sector

Nt – номер тетрады (0 или 1) в редактируемом байте

и U – операции логического умножения и сложения

Z – шестнадцатеричная цифра

 

Если Nt = 1, то редактируется вторая тетрада байта, которая сначала обнуляется, а затем в нее помещается двоичный код шестнадцатеричной цифры Z. Для кодирования данных двух этапов используются операторы сдвига, а также операторы логического умножения and и логического сложения or.

Назначение последних трех этапов алгоритма достаточно очевидно и не требует пояснений. П о л у ч и т е  исходный текст процедуры Write_digit_sector и добавьте его в файл Disp_sec.asm.

 


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