
лабораторная работа / лабораторные работы по ASSAMBLER / Лаба 3 - Отчёт
.docxФедеральное агентство по образованию
Владимирский Государственный Университет
Кафедра УИТЭС
Лабораторная работа №3
«Организация ветвлений и повторений с помощью языка Ассемблер»
Владимир 2010
Цель работы: изучить методики организации ветвлений и циклов с помощью средств языка Ассемблер.
Ход работы
Задача 1. Разработать программу на языке Ассемблер, реализующуюизвестный алгоритм Евклида по нахождению наибольшего общего делителя двух натуральных чисел:
Текст программы следующий (принимаем значения n1=3 иn2=2):
mvi B,3 ; ввод числа n1 в регистр B
mvi C,2 ; ввод числа n2 в регистр C
sr: ; метка начала сравнения чисел n1 (регистр А) и n2 (B)
mov A,b ;
sub C ;
jz ex ; если n1=n2 (А-C=0), то задача решена
jm no ; если n1<n2 (A-C<0), переходим к метке "no"
mov A,B ; если n1>n2, выполняем n1=n1-n2
sub C ;
mov B,A ;
jmp sr ; переходим обратно к сравнению чисел
no:
mov A,C ; если n1<n2, выполняем n2=n2-n1
sub B ;
mov C,A ;
jmp sr ; переходим обратно к сравнению чисел
ex: ; выходим, если число найдено
mov a,b
hlt
Загружаем программу в симулятор и запускаем на выполнение:
Результат: 01. Проверяем: числа 2 и 3 делятся только на 1.
Задача 2. Задана последовательность 1, 4, 7, … , 1+3n. Разработать программу, которая при заданном числе n подсчитывает количество чётных чисел в последовательности (принимаем значение n=9).
Код программы: