ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Красноярский Государственный Технический Университет
Лабораторная работа по ЦУиМП №1
ИЗУЧЕНИЕ ЯЗЫКА АССЕМБЛЕРА ДЛЯ
ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ
выполнил:
студент гр. Р53-4 : Титов Д. С.
проверил:
Тронин О.А.
Цель работы
Знакомство со структурой программы при программировании на языке ассемблера для персональных компьютеров, компилирование программы, отладка программы с помощью TURBO DEBUGER.
Ход работы
Задание (Вариант № 13) Сформировать массив из 10 двухбайтных чисел. Найти номер максимального числа.
Блок-схема программы:
Программа
model small ; модель small 64 кб для кода программа должно хватить
.stack 256 ; 256 байт для стека
.data ; сегмент двнных
mass dw 0aaah,0bbh,0eeeh,0fff0h,0abcdh,0fedch,1234h,9876h,0a0b0h,5555h ; выделение по 2 байта каждому элементу массива, числа в массиве произвольные, но не превышающие 2 байт
m dw ? ; выделение 2 байт для переменной m
n dw 0 ; выделение 2 байт для переменной n
.code ; сегмент кода
.startup
mov ax,@data ; адрес сегмента данных в регистр ax
mov ds,ax
xor ax,ax ; обнуление ax
lea bx,mass ; в bx поместить адрес начала массива mass
mov dx,[bx] ; в dx поместить значение слова, адрес которого в bx
mov m,dx ; присвоить переменной m значение регистра dx
mov cx,10 ; поместить в регистр cx число 10
M1: ; метка M1
mov dx,m ; в регистр dx поместить значение m
mov ax,[bx+si] ; в регистр ax поместить значение того, чей адрес [dx+si]
cmp dx,ax ; сравнить dx с ax
jbe M2 ; перейти к М2 если dx<=[bx+si]
jmp M3 ; перейти к М3
M2: ; метка M2
mov dx,[bx+si] ; в регистр dx поместить то, чей адрес в bx+si
mov m,dx ; присвоить переменной m значение регистра dx
mov dx,si ; в регистр dx поместить значение si
shr dx,1 ; сдвинуть dx на 1 вправо (поделить на 2)
mov n,dx ; присвоить переменной n значение регистра dx
M3: ; метка M3
add si,2 ; значение регистра si увеличить на 2
loop M1 ; цикл пока cx<>0, перейти к М1
mov bx,n ; в регистр bx поместить значение переменной n
mov ax,4c0h ; в регистр ax поместить значение 4c0h
int 21h ; прерывание 21h
.exit 0 ; выход в дос
end ; конец
Номер наибольшего элемента программа помещает в регистр bx (элементы нумеруются от 0 до 9)
Вывод: в ходе лабораторной работы была написана программа на ассемблере, ее проверка показала, что она работает правильно.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.