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

  • Выполните программу sub 1, R0 not R0 stop при различных начальных значениях регистра R0

  • Какую операцию выполняет этот алгоритм Найдите описание этого алгоритма в учебнике.

  • 65530 + 9 32760 + 9

  • , 32767=7FFF 16

  • Языком ассемблера. Для того, чтобы


    Скачать 151.5 Kb.
    НазваниеЯзыком ассемблера. Для того, чтобы
    Дата01.12.2021
    Размер151.5 Kb.
    Формат файлаdoc
    Имя файлаpractice10-4bu — 10.doc
    ТипПрограмма
    #287942

    И
    01.12.2021
    нформатика, 10 класс К.Ю. Поляков, Е.А. Ере
    мин
    1. Компьютерная арифметика

    Практические работы


    Для выполнения этих работ используется учебный компьютер «ЛамПанель», который можно загрузить со страницы http://kpolyakov.spb.ru/prog/lamp.htm.

        1. Представление целых чисел


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

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

    Процессор обрабатывает данные, используя специальные сверхбыстродействующие ячейки собственной памяти – регистры. В этой работе мы будем использовать только четыре 16-битных регистра общего назначения, которые называются R0, R1, R2 и R3. В области 1 на рисунке вы видите двоичные значения этих регистров (показаны черным цветом), шестнадцатеричные (синий цвет) и десятичные, без учета знака (зеленый цвет) и со знаком (коричневый цвет).



    Область 2 – это текстовый редактор, в котором набирается программа для процессора на специальном языке, который называется языком ассемблера. Для того, чтобы программа выполнилась, нужно нажать клавишу F9 (выполнение без остановки) или F8 (выполнение по шагам). Чтобы программа остановилась, процессор должен выполнить команду STOP. Таким образом, простейшая программа состоит из одной команды STOP.

    Для того, чтобы записать число в регистр, используют команду MOV (от англ. move – переместить). Числа записываются в шестнадцатеричной системе счисления. Например, команда

    MOV 12, R0

    запишет число 1216 = 18 в регистр R0. Каждая команда записывается в отдельной строке. Поэтому полная программа будет выглядеть так:

    MOV 12, R0

    STOP

    Для того, чтобы добавить число к регистру, применяют команду ADD (от англ. add – сложить). Например, команда

    ADD 15, R0

    добавляет число 1516 = 23 к регистру R0. Есть и аналогичная команда вычитания – SUB (от англ. subtract– вычесть). Нам будет нужна еще одна команда:

    NOT R0

    которая выполняет инверсию всех битов регистра, то есть меняет все нули на единицы, а единицы – на нули.

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



    1. Запустите тренажер «Лампанель».

    2. Используя команду MOV, напишите программу, которая заполнит регистры так, как на рисунке:



    Не забудьте закончить программу командой STOP. Выполните программу.

    Программа:

    1. Запишите, какие десятичные числа были только что записаны в регистры:

      Регистр

      Десятичные значения

      без учета знака

      с учетом знака

      R0







      R1







      R2







      R3







    2. Выполните программу

    sub 1, R0

    not R0

    stop

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

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

    Значение R0 после
    выполнения программы

    без учета знака

    с учетом знака

    5







    10







    25







    Какую операцию выполняет этот алгоритм? Найдите описание этого алгоритма в учебнике.

    Ответ:



    1. При тех же начальных значениях регистра R0 выполните программу

    not R0

    add 1, R0

    stop

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

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

    Значение R0 после
    выполнения программы

    без учета знака

    с учетом знака

    5







    10







    25







    Сделайте выводы, сравнивая результаты пп. 4 и 5.

    Выводы:



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

    Выражение

    Результат

    без учета знака

    с учетом знака

    65530 + 9







    32760 + 9







    8 - 10







    Подсказка: 65535=FFFF16, 32767=7FFF16

    Объясните, почему при сложении в первой строке получилось именно такое число. Как его можно рассчитать без программы?

    Объясните, почему при сложении во второй строке в варианте «с учётом знака» получилось именно такое число. Как его можно рассчитать без программы?

    Объясните, почему при сложении в третьей строке в варианте «без учёта знака» получилось именно такое число. Как его можно рассчитать без программы?





    http://kpolyakov.spb.ru



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