Главная страница
Навигация по странице:

  • SHL 1,R0 ; логический сдвиг влево на 1 бит SH R 2,R0 ; логический сдвиг вправо на 2 бита S AR 1,R0 ; арифметический сдвиг вправо на 1 бит

  • Рр. Информатика, 10 класс К. Ю. Поляков, Е. А. Ере


    Скачать 49.98 Kb.
    НазваниеИнформатика, 10 класс К. Ю. Поляков, Е. А. Ере
    Дата23.12.2021
    Размер49.98 Kb.
    Формат файлаdocx
    Имя файлаpractice10-4 (1).docx
    ТипДокументы
    #316154


    24.12.2021
    Информатика, 10 класс К.Ю. Поляков, Е.А. Еремин

    Объясните результаты, полученные в последних двух строчках:

        1. Логические операции и сдвиги


    Знакомство с программой «ЛамПанель»

    В программе «ЛамПанель» можно использовать логические операции «НЕ» (уже знакомая нам команда NOT), «И» (команда AND), «ИЛИ» (команда OR) и «исключающее ИЛИ» (команда XOR). В последних трех командах после названия команды сначала указывается маска, а затем через запятую – регистр, к которому применяется логическая операция. Например, команда

    AND FF,R0

    обнуляет старшие 8 бит (старший байт) регистра R0. Маска может находиться в регистре, например, последовательность команд

    MOV FF,R1

    OR R1,R0

    устанавливает в единицу 8 младших бит регистра R0, а остальные оставляет без изменений.

    Для выполнения сдвигов используются следующие команды

    SHL 1,R0 ; логический сдвиг влево на 1 бит

    SHR 2,R0 ; логический сдвиг вправо на 2 бита

    SAR 1,R0 ; арифметический сдвиг вправо на 1 бит

    ROL 2,R0 ; циклический сдвиг влево на 2 бита

    ROR 3,R0 ; циклический сдвиг вправо на 3 бита

    Конечно, сдвиг может применяться к любому регистру общего назначения, а не только к R0.

    Задание на практическую работу

    1. Запустите тренажер «ЛамПанель». Напишите программу, которая решает следующую задачу, используя логические операции:

    В регистрах R1, R2 и R3 записаны коды трех десятичных цифр, составляющих трехзначное число (соответственно сотни, десятки и единицы). Построить в регистре R0 это число. Например, если R1=3116, R2=3216 и R3=3316, в регистре R0 должно получиться десятичное число 123.

    Программа:

    1. Используя программу «ЛамПанель», определите и запишите в таблицу значения регистра R0 после выполнения каждой из следующих команд:




    Команда

    R0

    1

    MOV 1234, R0




    2

    XOR ABCD, R0




    3

    XOR ABCD, R0




    Ответьте на вопросы:



    • как изменится результат выполнения программы, если в командах 2 и 3 заменить маску на другую, например, на CB2416?



    • как изменится результат выполнения программы, если маску в команде 2 изменить, а маску в команде 3 не менять?



    1. Запишите в таблицу десятичные числа, которые будут получены в регистре R0 после выполнения каждой команды этой программы при разных начальных значениях R0 (две команды выполняются последовательно одна за другой):

    Начальное значение

    255

    254

    252

    -255

    -254

    -252

    SHR 2,R0



















    SHL 2,R0



















    Замечание: не забудьте перевести числа в шестнадцатеричную систему!

    Когда последовательное выполнение этих двух команд не изменяет данные?

    1. Напишите программу, которая решает следующую задачу, используя логические операции и сдвиги:

    При кодирование цвета используются 4-битные значения составляющих R (красная), G (зеленая) и B (синяя). Коды этих составляющих записаны в регистрах R1, R2 и R3. Построить в регистре R0 полный код цвета. Например, если R1=A16, R2=B16 и R3=C16, в регистре R0 должно получиться число ABC16.

    Программа:

    1. Напишите программу, которая умножает число в регистре R0 на 10, не применяя команду умножения. Используйте арифметические операции и сдвиги.

    Программа:

    http://kpolyakov.spb.ru



    написать администратору сайта