Предыдущий раздел | РЕДАКТИРОВАНИЕ ИНФОРМАЦИИ В ОП | Следующая глава |
Алгоритм процедуры 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.
Предыдущий раздел | В начало | Следующая глава |