Системное представление объектов. Отчет к лабораторной работе 3 Команды условного и безусловного переходов. Организация ветвлений и циклов в программе
Скачать 19.24 Kb.
|
Орловский государственный университет имени И. С. Тургенева Институт приборостроения, автоматизации и информационных технологий Кафедра информационных систем и цифровых технологий Дисциплина «Архитектура ЭВМ и систем» Отчет к лабораторной работе № 3 «Команды условного и безусловного переходов. Организация ветвлений и циклов в программе» Выполнили: Василения Иван Валерьевич Дорофеева Анна Вадимовна Захарова Александра Сергеевна Принял: Конюхова О. В. Орёл 2022 год Ветвления в алгоритмах. Реализация ветвлений на языке ассемблера. Ветвление реализовано командой 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 |