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

  • Отладчик

  • Список команд отладчика. Для вывода списка команд отладчика введите символ «» Регистры как переменные.

  • Размещение двухбайтовых инструкций процессора в ячейках памяти

  • Заполнение последовательных ячеек памяти.

  • Коды инструкций

  • 5. Указатель следующей инструкции

  • 6. Листинг сегмента кода

  • 7. Программные прерывания

  • Вывод символа на экран Для выполнения этой операции используется прерывание 02h, ASCII -код символа в регистре DLВыполнение последовательности инструкций

  • лаба 5 эвм. Лабораторная работа 5 Регистры процессора 8086


    Скачать 47.5 Kb.
    НазваниеЛабораторная работа 5 Регистры процессора 8086
    Анкорлаба 5 эвм
    Дата11.09.2022
    Размер47.5 Kb.
    Формат файлаdoc
    Имя файлаLab_5.doc
    ТипЛабораторная работа
    #671313

    Лабораторная работа № 5

    Регистры процессора 8086


    Цель работы: изучить назначение регистров процессора 8086 и основные принципы использования регистров для управления работой процессора. Изучить способ сегментирования памяти процессора 8086.

    1. Отладчик DEBUG

    Запуск отладчика.

    Для запуска отладчика выполните команду cmd. В командной строке введите команду debug. Приглашение отладчика «-»

    Список команд отладчика.

    Для вывода списка команд отладчика введите символ «?»

    1. Регистры как переменные.
    Представление содержимого регистров

    Содержимое регистров выводится на экран по команде R

    Пример:

    -r

    AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

    DS=0ACA ES=0ACA SS=0ACA CS=0ACA IP=0100 NV UP EI PL NZ NA PO NC

    0ACA:0100 3E DS:

    0ACA:0101 62 DB 62

    Задание 1

    Назовите регистры общего назначения (РОН).

    Определите, какие значения в них записаны?

    Скопируйте результат в отчет. Для этого в левом верхнем углу окна отладчика откройте меню редактирования, выберите пункт «Пометить», выделите в окне на экране нужную область текста, выберите в меню пункт «Копировать», перейдите в окно болкнота, и выполните вставку.

    Изменение значений в регистрах

    Для записи данных в определенный регистр используется команда R <имя регистра>

    Пример:

    -r AX

    AX 0000

    :23

    -r AX

    AX 0023

    :

    Задание 2.

    Введите в РОН шестнадцатеричные числа 56h, 1F3h, D8h, AB1h. Просмотрите содержимое всех регистров. Внесите результат в отчет

    Введите во все РОН нулевые значения.

    Проверьте содержимое регистров


    1. Размещение двухбайтовых инструкций процессора в ячейках памяти


    Задание 3.

    Из каких частей состоит адрес ячейки памяти в реальном режиме работы процессора?

    Укажите размер сегмента в адресуемой памяти процессора в реальном режиме.

    Какой наименьший сдвиг возможен между начальными байтами последовательных сегментов?

    Определите текущие адреса сегмента данных и сегмента кода.

    Запись числа в память

    Для записи числа в ячейку памяти используется команда E <смещение>
    П
    Старое значение в памяти
    ример

    -E 100

    0 ACA:0100 3E.01


    Записываемое значение

    Адрес сегмента

    Смещение


    -E 101

    0ACA:0101 62.D8

    -r

    AX=0023 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

    DS=0ACA ES=0ACA SS=0ACA CS=0ACA IP=0100 NV UP EI PL NZ NA PO NC

    0ACA:0100 01D8 ADD AX,BX

    Из полученного результата видно, что отладчик интерпретирует двухбайтную инструкцию по адресу 0ACA:0100 как операцию сложения ADD значений регистров AX и BX

    Заполнение последовательных ячеек памяти.

    Для выполнения этого действия используется команда E <смещение первой ячейки>. После ввода цифр первого числа нажмите пробел и вводите цифры второго числа и т.д.

    Задание 4.

    Определите, с какого адреса должен начинаться сегмент данных, если сегмент кода имеет размер 64 кбайт. Установите нужное значение адреса сегмента данных.

    Введите в область сегмента данных последовательность чисел 10h,25h,1F,AC. В какой сегмент вводит значения отладчик, исполняя команду Е со смещением в качестве аргумента?

    Используйте формат команды E <сегмент>:<смещение> для ввода кода инструкции ADD в сегмент кода, начиная со смещения 0100

    1. Коды инструкций




    Инструкция

    Машинный код

    Результат

    сложения ADD AX,BX

    01D8

    AX

    вычитания SUB AX,BX

    29D8

    AX

    умножения BX на AX – MUL BX

    F7E3

    DX:AX (старшие:младшие биты)

    деления DX:AX на BX – DIV BX

    F7F3

    AX- результат

    DX- остаток

    прерывание INT 21h

    CD21

    Вызов обработчика прерываний.


    5. Указатель следующей инструкции

    Смещение адреса следующей инструкции в сегменте кода содержится в регистре IP

    Для выполнения следующей инструкции процессором используется команда T. После ее выполнения значение IP увеличивается на 2, если выполненная инструкция не была инструкцией перехода.

    Задание 5.

    Введите в регистр BX значение.

    Введите в сегмент кода инструкцию сложения со смещением 100. Установите IP на адрес введенной инструкции. Выполните сложение. Повторите инструкцию сложения еще трижды, каждый раз устанавливая соответствующий адрес в IP.

    Введите в регистр BX значение 2

    Введите инструкцию умножения со смещением 102. Выполните эту инструкцию

    Выполните инструкцию вычитания 3 раза подряд. Смещение вычитания 104.

    Выполните инструкцию деления (смещение 106)

    Вернитесь к инструкции вчитания и выполните ее

    Какое значение получено в регистре AX? Объясните его.

    Что изменилось в регистре флагов и почему?
    6. Листинг сегмента кода

    Для просмотра содержимого сегмента кода используется команда U <начальное смещение>

    Задание 6.

    Выведите листинг сегмента кода со смещения 100. Скопируйте его в отчет.

    Разделите число7С4B12h на число 1С0. Чему равно частное и остаток?

    Чему равно произведение чисел 7C4Bh и 1A5?
    7. Программные прерывания

    Параметры для обработчика прерываний, вызываемого инструкцией INT 21, содержатся в РОН: AH- номер прерывания

    DL-параметр для прерывания

    Вывод символа на экран

    Для выполнения этой операции используется прерывание 02h, ASCII -код символа в регистре DL

    Выполнение последовательности инструкций

    Для выполнения последовательности инструкций в сегменте кода, начиная с той, на которую указывает IP, используется команда G <смещение останова >

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

    Задание 7.

    Введите код прерывания 21 со смещением 108, укажите номер прерывания 02h код символа 44h. Выполните инструкцию командой g от 108 до 110.

    Попробуйте объяснить полученный результат.


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