Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Разработка программы при помощи языка низкого уровня ассемблер

Тип Реферат
Предмет Информатика и программирование
Просмотров
1604
Размер файла
238 б
Поделиться

Ознакомительный фрагмент работы:

Разработка программы при помощи языка низкого уровня ассемблер

ВОЛЖСКИЙ УНИВЕРСИТЕТ ИМЕНИ В.Н. ТАТИЩЕВА

Кафедра «Информатика и системы управления»

Курсовая работа

по дисциплине: «Организация ЭВМ»

Вариант - 107

Содержание

Введение

1 Постановка задачи

2 Описание и схема алгоритма

3 Листинг программы

Заключение

Список литературы


Введение

Если коротко, то язык ассемблера — это символическое представление машинного языка.

Все процессы в машине на самом низком, аппаратном уровне приводятся в действие только командами (инструкциями) машинного языка. Отсюда понятно, что, несмотря на общее название, язык ассемблера для каждого типа компьютера свой. Это касается и внешнего вида программ, написанных на ассемблере, и идей, отражением которых этот язык является.

По-настоящему решить проблемы, связанные с аппаратурой (или даже, более того, зависящие от аппаратуры как, к примеру, повышение быстродействия программы), невозможно без знания ассемблера.

Программист или любой другой пользователь может использовать любые высокоуровневые средства, вплоть до программ построения виртуальных миров и, возможно, даже не подозревать, что на самом деле компьютер выполняет не команды языка, на котором написана его программа, а их трансформированное представление в форме скучной и унылой последовательности команд совсем другого языка — машинного. А теперь представим, что у такого пользователя возникла нестандартная проблема или просто что-то не заладилось. К примеру, его программа должна работать с некоторым необычным устройством или выполнять другие действия, требующие знания принципов работы аппаратуры компьютера. И вот здесь-то и начинается совсем другая история.... Каким бы умным ни был программист, каким бы хорошим ни был язык, на котором он написал свою чудную программу, без знания ассемблера ему не обойтись. И не случайно практически все компиляторы языков высокого уровня содержат средства связи своих модулей с модулями на ассемблере либо поддерживают выход на ассемблерный уровень программирования.

Из всего вышесказанного можно сделать вывод, что, так как язык ассемблера для компьютера “родной”, то и самая эффективная программа может быть написана только на нем (при условии, что ее пишет квалифицированный программист). Здесь есть одно маленькое “но”: это очень трудоемкий, требующий большого внимания и практического опыта процесс. Поэтому реально на ассемблере пишут в основном программы, которые должны обеспечить эффективную работу с аппаратной частью. Иногда на ассемблере пишутся критичные по времени выполнения или расходованию памяти участки программы. Впоследствии они оформляются в виде подпрограмм и совмещаются с кодом на языке высокого уровня.

1. Постановка задачи

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

1 Ввод матрицы 4х4

2 Вывод введенной матрицы

3 Создание одномерного массива (первый элемент – минимальный элемент из строки номер 0, второй – максимальный из столбца номер 1 матрицы, третий – минимальный из строки номер 2 матрицы и т.д.)

4 Тестирование созданного массива (если положительные элементы чередуются то вывод на монитор этого массива, иначе вывод соответствующего сообщения).

2. Описание и схема алгоритма

Рисунок 1 – Алгоритм программы


Рисунок 1 продолжение – Алгоритм программы

Рисунок 1 продолжение – Алгоритм программы


Рисунок 1 продолжение – Алгоритм программы

Рисунок 1 продолжение – Алгоритм программы


Рисунок 1 продолжение – Алгоритм программы

3 Листинг программы

model smallinclude io.asm.dataadd_elem db 10, 13, 'Введите элементы матрицы : $'ishod_matrix db 10, 13, 'Исходная матрица : $'preobr_matrix db 10, 13, 'Преобразованная матрица : $'tab db 10, 13, ' $'pustie_str db 10, 13, 10, 13, 10, 13,'$'probel db ' $'m dw 4 ; размерность квадратной матрицыmatrix dw 4 dup (4 dup (?)) ; матрицаmas1 dw 4 dup(?)zn_chereduetsa db 10,13,'Знаки чередуются $'zn_nechereduetsa db 10,13,'Знаки не чередуются $'.stack 100h.codestart:mov ax, @datamov ds, axmov es, ax;--------------------------------------------------- очистка экранаmov ah, 06 ; 6-я функция ...mov al, 0 ; весь экран прокрутитьmov bh, 7 ; с цветами черный-белыйmov dx, 184Fh ; границы экрана: нижний правый...mov cx, 0 ; ... и верхний левый углыint 10h ; ... 10-го прерывания;--------------------------------- установка курсора в верхний левый уголMOV AH,2 ; 2 функция...MOV BH,0 ; координатыMOV DX,0 ; координатыINT 10H ; ... 10-го прерывания;--------------------------------- Ввод матрицы --------------------lea dx, add_elemmov ah, 09hint 21hlea dx, pustie_strmov ah, 09hint 21hlea dx, tab ; выводим смещение на сл. строку для красотыmov ah, 09hint 21hmov cx, 4 ; количество строкmov bx, 0 ; обнуляем bx - смещение по строкамm1: ;push cx ; сохраняем cx - количество строкmov cx, m ; сl <- количество столбцов(элементов в строке)mov si, 0 ; обнуляем si - смещение внутри строки(по столбцам)m2: ; с этой метки начинается ввод элемента в строкуinint matrix[bx][si]lea dx, probel ; выводим на экран пробел для красотыmov ah, 09hint 21hinc si ; увеличиваем смещение на 1inc siloop m2 ; если не равны, значит строка не закончилась т.е. заново вводимpop cx ; востанавливаем количество строкmov ax, m ; в al <- размер строкиadd bx, ax ; bx=bx+ax (переводим смещение на сл. строку)add bx, axlea dx, tab ; выводим смещение на сл. строку для красотыmov ah, 09hint 21newlineloop m1 ; если не равны значит строки не окончены т.е. заново;------------------------------------- очистка экранаmov ah, 06 ; 6-я функция ...mov al, 0 ; весь экран прокрутитьmov bh, 7 ; с цветами черный-белыйmov dx, 184Fh ; границы экрана: нижний правый...mov cx, 0 ; ... и верхний левый углыint 10h ; ... 10-го прерывания;-------------------------------- установка курсора в верхний левый уголMOV AH,2 ; 2 функция...MOV BH,0 ; координатыMOV DX,0 ; координатыINT 10H ; ... 10-го прерывания;-------------------- вывод матрицы на экранlea dx, ishod_matrix ; исходная матрица -mov ah, 09hint 21hlea dx, tab ; выводим на экран смещениеmov ah, 09hint 21hmov cx, m ; количество строкmov bx, 0 ; номер строки_m1: ;push cx ; сохраняемmov cx, m ; для того чтобы ввести количество столбцовmov si, 0 ; номер столбца_m2:outint matrix[bx][si] ; выводим элемент матрицыlea dx, probel ; далее выводим пробелmov ah, 09hint 21hinc si; переходим на сл. столбец (элемент строки)inc siloop _m2 ; если не конец строки, то зановоpop cx ; востанавливаем количество строкmov ax, m ;add bx, ax ; переход на сл. строку матрицыadd bx, axlea dx, tab ; выводим на экран смещениеmov ah, 09hint 21hloop _m1 ; если не последняя строка, заново;1- преобразование одномерной матрициmov cx, m ; количество сокmov bx, 0; номер строкиxor di,di_mm1: ;push cx ; сохраняемmov cx, m ; для того чтобы ввести количество столбцовmov si, 0 ; номер столбцаmov dx, matrix[bx][0] ; max=matrix[i][0]_mm2:cmp dx, matrix[bx][si] ; если matrix[i][j]<max то ререход на след элементjl bolshe; иначе max=matrix[i][j]mov dx, matrix[bx][si]mov mas1[di],dx; mas1=maxbolshe: inc si; переходим на сл. столбец (элемент строки)inc siloop _mm2; если не конец строки, то зановоpop cx ; востанавливаем количество строкmov ax, 8 ;add bx, ax ; переход на через строку матрицыadd bx, axmov ax, 4; переход через элемент матрици mas1add di, axloop _mm1 ; если не последняя строка, заново;2- преобразование одномерной матрициmov cx, 2 ; количество стОЛБЦОВmov di,2mov si,2_m_m1: ;push cx ; сохраняемmov cx, m ; для того чтобы ввести количество столбцовmov bx, 0 ; елемент i=0 j=2 делаю минимальнымmov dx, matrix[bx][si] ;_m_m2:cmp dx, matrix[bx][si] ;если [i][j]элемент матрицы > maxjg menshe;mov dx, matrix[bx][si] ;max= matrix[i][j]menshe: mov ax, 8 ;add bx, ax ; переход на сл. стобец матрицыloop _m_m2; если не конец строки, то зановоmov mas1[di],dx; mas1[i]=max i не четноеpop cx ; востанавливаем количество строкmov ax, 4 ;add si, ax ; переход на сл. столбец матрицыmov ax, 4add di, ax; переход на след елемет+1loop _m_m1 ; если не последняя строка, заново;вывод приеобразованной матрициlea dx, preobr_matrix ; преобразованная матрица -mov ah, 09hint 21hxor si,simov cx,4L: outint mas1[si] ; ФУНКЦИЯ ИЗ МОДУЛЯ IO ДЛЯ ЗНАКОВЫХ ЧИСЕЛlea dx, probel ; далее выводим пробелmov ah, 09hint 21hadd si, 2loop L; =================-=-=-=-=-=-=-=-= sravnenie elementov matricixor si,simov cx,3L_1: mov ax,mas1[si]imul mas1[si+1] ; умножение i го и i+1 элементаje znak_necher ; если болше 0 и = то два соседних элемента с одним знакомadd si, 2 ; АДРЕСС= АДРЕСС +2loop L_1;=--=-=-=-=-=-=-=-=-=-=vivod soobhsenii-=-=--=-=-=--=-=znak_cher:lea dx, pustie_strmov ah, 09hint 21hlea dx, zn_chereduetsa ;вывод сообщения о чередовании знаковmov ah, 09hint 21hjmp exitznak_necher:lea dx, pustie_strmov ah, 09hint 21hlea dx, zn_nechereduetsa ;вывод сообщения о нечеродовании знаковmov ah, 09hint 21hexit:mov ah, 7h ; задержкаint 21hmov ah, 4ch ; выход в DOSint 21hend start

Заключение

В данной курсовой работе был изучен теоретический по работе материал с прерываниями DOS, вводом и выводом чисел при помощи подключаемого модуля IO, работы с одномерными и двухмерными массивами, тестирование состояние флагов. Основные принципы и навыки работы с компилятором и отладчиком. Разработана схема алгоритма программы и реализована на языке низкого уровня ассемблер.

Список литературы

1. Каган Б. М. Электронные вычислительные машины и системы. Учебное пособие для вузов. – М.: Энергоатомиздат, 1991.

2. Ефремов В.Д., Мелехин В.Ф., Дурандин К.П. и др. Вычислительные машины и системы. Учебник для вузов – 2М.: Высшая школа, 1994.

3. Ларионов А.М., Майоров С.А., Новиков Г.И. Вычислительные комплексы, системы, сети.// Учебник для вузов. – Л.: Энергоатомиздат, 1987.

4. Микропроцессоры: в 3-х кн.: Учебник для вузов. /Под ред. Л.И.Преснухина - М.: Высшая школа, 1986.

5. МикроЭВМ: в 8 кн. /Под ред. Л..Преснухина. – М.: Высшая школа, 1988.

6. Соловьев Г.Н. Арифметические устройства ЭВМ. – М.: Энергия, 1978.

7. Смирнов А.Д Архитектура ВС./ Учебное пособие для вузов. – М.: Наука.: Гл. ред. Физ.-мат.- лит., 1990.

8. Головкин Б.А. Параллельные вычислительные системы. – М.: Наука: Гл. ред. Физ.-мат. Лит., 1980.

9. Компьютеры на СБИС в 2-х кн.: пер. с японского/ Т.Мотоока, Х.Тонака и др./ - М.: Мир, 1980.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно