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

  • .model small

  • xor ax, ax ;ax=0000

  • add dl,1 ;счетсик единиц в НОД jmp m5 m1: mov al,bl ;al = меньшее число

  • xor ah,ah ;обнуление ah jmp divmark m2: mov x,bl ;запись НОД в x

  • jc m4

  • Системное представление объектов. Отчет к лабораторной работе 3 Команды условного и безусловного переходов. Организация ветвлений и циклов в программе


    Скачать 19.24 Kb.
    НазваниеОтчет к лабораторной работе 3 Команды условного и безусловного переходов. Организация ветвлений и циклов в программе
    АнкорСистемное представление объектов
    Дата17.11.2022
    Размер19.24 Kb.
    Формат файлаdocx
    Имя файлаlab3AVM.docx
    ТипОтчет
    #794991


    Орловский государственный университет имени И. С. Тургенева


    Институт приборостроения, автоматизации и информационных технологий

    Кафедра информационных систем и цифровых технологий
    Дисциплина «Архитектура ЭВМ и систем»

    Отчет к лабораторной работе № 3

    «Команды условного и

    безусловного переходов. Организация ветвлений и циклов в

    программе»

    Выполнили:

    Василения Иван Валерьевич

    Дорофеева Анна Вадимовна

    Захарова Александра Сергеевна

    Принял:

    Конюхова О. В.


    Орёл

    2022 год

    1. Ветвления в алгоритмах. Реализация ветвлений на языке ассемблера.

    Ветвление реализовано командой CMP, сравнивающей значения двух регистров общего назначения. В зависимости от результата сравнения происходит переход по определенной метке.

    2.Команды условного и безусловного переходов. Каким образом

    вычисляются адреса переходов?

    Ветвление (условный переход) происходит только при соблюдении определённого условия, в противном случае выполняется следующая по порядку команда программы.

    3. Циклы в алгоритмах. Организация циклов на языке ассемблера.

    Особенности и ограничения цикла LOOP.

    Циклы организуются для многократного повторения одной или нескольких команд программы или процедуры. Цикл можно организовать, используя команды условного и безусловного переходов, рассмотренные выше, а можно с помощью специальных команд.

    Команда LOOP и еѐ расширения позволяет организовывать циклы, подобные циклам for в языках высокого уровня с автоматическим уменьшением счётчика цикла. Количество повторений содержится в регистре CX, который в командах управления циклами выполняет функции счётчика цикла.

    4. В каком регистре находится во время выполнения программы

    смещение кода? Каким образом вычисляется адрес команды?

    Регистр указателя команды IP – имеет размер два байта и содержит смещение следующей подлежащей выполнению команды относительно содержимого сегментного регистра CS в текущем сегменте команд. Этот регистр непосредственно недоступен программисту, но загрузка и изменение его значения производятся различными командами управления, к которым относятся команды условных и безусловных переходов, вызова процедур и возврата из процедур. Возникновение прерываний также приводит к модификации регистра IP.

    5. Какую принципиальную роль играет оператор безусловного

    перехода JMP при организации ветвлений?

    В случае, когда ни одно условие не выполнится, с помощью команды JMP можно организовать переход на метку, учитывающую подобную ситуацию.

    6. Что означает корректное завершение программы?

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

    mov ah, 4ch

    int 21h

    Корректное завершение программы позволяет передать управление ОС после ее завершения.

    7. Реальный и защищённый режимы работы процессора. Вычисление физических адресов ячеек памяти.

    Реальный режим (или режим реальных адресов; англ. real-address mode) — режим работы процессоров архитектуры x86, при котором используется сегментная адресация памяти (адрес ячейки памяти формируется из двух чисел: сдвинутого на 4 бита адреса начала сегмента и смещения ячейки от начала сегмента; любому процессу доступна вся память компьютера).

    В защищенном режиме программа оперирует адресами, которые могут относиться к физически отсутствующим ячейкам памяти, поэтому такое адресное пространство называется виртуальным.

    Код программы:

    .model small

    data segment

    a db 8ch ;140

    b db 60h ;96

    x db '$'

    data ends
    code segment

    assume DS: data, CS: code

    mov ax,data

    mov ds,ax
    xor ax, ax ;ax=0000

    mov al,a ;al = 140

    mov bl,b ;bl = 96

    divmark:

    div bl ;ax = a/b

    cmp ah, 0 ;ah==0?

    jne m1

    je m2
    m4:

    add dl,1 ;счетсик единиц в НОД

    jmp m5
    m1:

    mov al,bl ;al = меньшее число

    mov bl,ah ;bl = остаток предыдущего деления

    xor ah,ah ;обнуление ah

    jmp divmark
    m2:

    mov x,bl ;запись НОД в x
    mov cx,8 ;запись в сх количества итераций цикла

    m3:

    shr bl,1 ;сдвиг НОД на 1 бит вправо и запись его в CF

    jc m4

    m5:

    loop m3
    mov ah,4ch

    int 21h
    code ends

    end


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