Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Красноярский Государственный Технический Университет
Лабораторная работа по ЦУиМП №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)
Вывод: в ходе лабораторной работы была написана программа на ассемблере, ее проверка показала, что она работает правильно.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.