ВОЛЖСКИЙ УНИВЕРСИТЕТ ИМЕНИ В.Н. ТАТИЩЕВА
Кафедра «Информатика и системы управления»
Курсовая работа
по дисциплине: «Организация ЭВМ»
Вариант - 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 ; востанавливаем количество стНаверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.