Методика выполнения.
Стр 1 из 2Следующая ⇒ ЛАБОРАТОРНАЯ РАБОТА №12 СПОСОБЫ И МЕТОДЫ ВЫВОДА ЧИСЕЛ
Цель работы: Освоить методы вывода чисел в двоичном, шестнадцатеричном и десятичном коде.
Краткие теоретические ведомости Вывод двоичного кода числа, записанного в регистр DH. Методика выполнения. Нужно последовательно проанализировать биты числа. В данной работе ограничимся байтом, который будем хранить в DH. Если бит нулевой (сброшен), то нужно вывести '0', если установлен, то '1'. Алгоритм решения задачи: проанализировать значение одного бита; вывести значение бита; перейти к следующему биту. И так 8 раз (БАЙТ!) - ЦИКЛ Анализ бита: При анализе значения программисты обычно используют команду TEST, но в данной лабораторной работе мы будет использовать следующую команду SHL Команда SHL осуществляет сдвиг влево всех битов операнда. Старший бит операнда поступает в флаг CF. Если команда записана в формате SHL операнд, 1 сдвиг осуществляется на 1 бит. В младший бит операнда загружается 0. Если команда записана в формате SHL операнд,CL сдвиг осуществляется на число битов, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов старшие биты операнда, пройдя через флаг CF, теряются, а младшие заполняются нулями В качестве операнда команды SHL можно указывать любой регистр (кроме сегментного) или ячейку памяти размером, как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение. Каждый сдвиг влево эквивалентен умножению знакового числа на 2, поэтому команду SHL удобно использовать для возведения операнда в степень 2. Команда воздействует на флаги OF, SF, ZF, PF и CF. Прореагировать на значение флага можно с помощью команды
JNC <метка> Осуществляется переход на метку, если флаг CF равен нулю, иначе выполняется команда, непосредственно идущая после команды.
Пример №1.1
Замечание: в описанном способе анализа значение исходного числа теряется. Иначе следует использовать команду ROL, но 8 раз для байта. Вывод значения байта в шестнадцатеричной системе счисления Методика выполнения. Алгоритм решения задачи: Допустим, что байт, значение которого нужно вывести, находится в регистре DH, и имеется таблица символов "0123456789ABCDEF". Байт состоит из двух шестнадцатеричных цифр. С учетом этого задачу можно решить так: нужно вывести на экран два символа из этой таблицы. Сначала - символ с номером, равным старшему полубайту числа, а потом с номером, равным младшему полубайту. Для решения задачи нужно решить две небольшие проблемы: Записать в AL символ с нужным номером. Воспользуемся регистровым косвенным режимом адресации со смещением. Для этого значение каждого полубайта следует записывать в BX; Записать в BX значение полубайта.
Пример №2.1
Читайте также: Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|