Программирование на Ассемблере под DOS


Задача 6.


Уфф... Вот что получиться в итоге должно: ;-[WRITE_HEX, V1]---------------------------------------- ;Печатает две шестнадцатеричные цифры ;На входе: DL - типа цифры две :)) ;На выходе: нихрена ;Прерывания: ан нэту ;Процедуры: WRITE_HEX_DIGIT ;-------------------------------------------------------- WRITE_HEX proc push CX push DX mov DH,DL mov CL,4 shr DL,CL call WRITE_HEX_DIGIT mov DL,DH and DL,0Fh call WRITE_HEX_DIGIT pop DX pop CX ret WRITE_HEX endp

Ну че тут объяснять?? Я уже объяснил все!! Единственное, что могу добавить - это про mov DH,DL. Этой командой мы значение регистра копируем перед тем как биты "ему" сдвинуть. А потом статус-кво mov DL,DH восстанавливаем, чтоб и младшую цифру напечатать.
  Все. Тестируем. Вроде должно работать.

 




Начало  Назад  Вперед



Книжный магазин