Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Rgr_Spo_18_Variant

.docx
Скачиваний:
8
Добавлен:
05.09.2020
Размер:
82.74 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра АСУ

100

6

7

8

9

10

11

12

13

14

15

16

17

90

80

70

60

50

40

30

20

10

РАСЧЁТНО ГРАФИЧЕСКАЯ РАБОТА

По дисциплине «Системное программное обеспечение»

Тема: «Низкоуровневое системное программирование для IBM PC»

Вариант 18

Группа

Фамилия, И., О.

Подпись

Дата

Оценка

Студент

Семенов Д. В.

Консультант

Лянцев О.Д.

Принял

Лянцев О.Д.


Уфа 2019 г.

Федеральное агентство по образования

Государственное образовательное учреждение высшего профессионального образования

«Уфимский государственный авиационный технический университет»

Кафедра Автоматизации систем управления

ЗАДАНИЕ

на РГР проект по дисциплине «Системное программное обеспечение»

Студент_Семенов Д. В. Группа ИВТ-314 Консультант __Лянцев О.Д.

ФИО № акад. гр. ФИО

  1. Тема курсовой работы (наименование темы)

Разработка программы с помощью низкоуровневых средств на

языке ассемблера

  1. Основное содержание:

Вариант 18. Прочитать текущее время, прибавить к нему заданный интервал

(например, 5 сек.) и установить будильник на полученное время;

  1. Требования к оформлению:

    1. Пояснительная записка должна быть оформлена в редакторе Microsoft ®Word в соответствии с требованиями ___________ЕСКД,ЕСПД_________________________

ЕСКД, ЕСПД, ГОСТ и др.

    1. В пояснительной записке должны содержаться следующие разделы:

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

низкоуровневых функций, текст программы с

комментариями, примеры выполнения программы, заключение

    1. Графическая часть должна содержать:

Примеры выполнения программы, блок-схема алгоритма

Дата выдачи «___»__________20__г. Дата окончания «__»_______20__г.

Руководитель____________________

подпись

Оглавление

Введение: 4

Цель: 4

Задание: 4

Блок-схема алгоритма 5

Результат работы программы: 8

8

9

Вывод: 9

Заключение: 9

Введение:

Знакомство с назначением и возможностями системных программ (их обычно называют DOS и BIOS) является необходимым элементом подготовки квалифицированного программиста, независимо от того, в какой предметной области он работает. При разработке программ на языках высокого уровня (Паскаль, Си, COBOL, Java) многие средства DOS и BIOS реализуются в неявной форме с помощью операторов языка, его встроенных функций или библиотечных процедур, и необходимость прямого использования системных функций возникает реже. Однако знакомство с внутренними возможностями DOS и BIOS с помощью языка низкого уровня Assembler, ее алгоритмами и процедурами позволяет увидеть за формализмом языка высокого уровня те реальные процессы, которые будут протекать в системе при выполнении прикладной программы и, следовательно, более осознанно подойти к разработке структуры программы и ее конкретных алгоритмов.

Цель:

Целью данной расчетно-графической работы является закрепление, углубление и обобщение знаний, полученных во время обучения по дисциплине «Системное программное обеспечение», развитие навыков работы со специальной литературой и навыков программирования.

Задание:

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

Формат программы: COM - программа;

Ввод с клавиатуры: средствами DOS;

Вывод на экран: в текстовом режиме;

Динамическое распределение памяти: определение размера программы;

Блок-схема алгоритма

Текст программы

text segment 'code'

assume CS:text, DS:text

org 100h

rgr: ;метка точки входа программы

;начало очистки экрана

mov ax, 0600h ;прокрутка на весь экрана

mov bh, 07 ;нормальный атрибут

mov cx, 0000 ; верхняя левая позиция

mov dx, 184fh ;нижняя левая позиция

int 10h ;вызов BIOS

;конец очистки экрана

;начало вывода текстовой информации на экран

mov ah, 09h ;функция вывода на экран

lea dx, info ;в DX заносим выводимую текстовую информацию строки info

int 21h ;вызов DOS

;конец выводимой текстовой информации на экран

;преобразование размера программы в сторку

lea DI, sSize[20] ;|20 строчка с которой будет выводится размер программы

mov AX, iSize

call schet

;преобразование размера программы в строку закончено

;выводим на экран сообщение о размере программы

lea DX, sSize ;; в DX заносим смещение адреса выводимой строки sSize

mov AH, 09h ; функция вывода на экран

int 21h ;вызов DOS

mov ah,09h ;функция вывода на экран

lea dx,any ;в DX заносим выводимую текстовую информацию строки any

int 21h ;вызов DOS

mov ah,08h ;задержка экрана

int 21h ;|вызов DOS

mov ah,09 ;функция вывода на экран

lea dx,budil ; в DX заносим выводимую текстовую информацию строки budil

int 21h ;вызов DOS

push DS ; поместить DS в стек

mov AX,354Ah ; получаем адрес обработчика

int 21h ;вызов DOS

; ---------Прервыание--------

mov word ptr old_4a,BX ;смещение исходного обработчика

mov word ptr old_4a+2,ES ;сегмент исходного обработчика

mov AX,254Ah ;функция заполнения

mov DX,offset new_4a ;смещение нашего обработчика

int 21h ;вызов DOS

pop DS ; извлечь данные из стека DS

mov ah,02 ;считывание текущего времени

int 1Ah ;установить часы(счетчик тиков)

mov ah,06 ;установка будильника

add dh,5 ;к текущему времени прибавить 5 секунд

int 1Ah ;

mov ah,08h ; задержка экрана до нажатия клавиши

int 21h ;вызов DOS

mov ah,07h ; сброс будильника

int 1Ah

mov ax, 4c00h ; завершить программу

int 21h

new_4a proc

pushf ; установка флага

push AX ; Поместить данные в АХ

mov AH,09h ; Вывод символа

mov AL,'*' ; Выводимый символ

mov bh,0 ; Страница на котороый выводится символ, 0 страница

mov cx,5 ; Количество выводимых символво

int 10h

mov AL,20h ; Аппаратное прерывание

out 20h,AL ; Oтcутcтвиe этиx cтpoк лeгкo мoжeт пpивecти к кpaxу пpoгpaммы, тaк кaк пpepывaния oт клaвиaтуpы cкopee вceгo oкaжутcя зaмopoжeнными

pop AX ; Извлечь данные из АХ

iret ; возврат в прерванную программу

new_4a endp

SCHET proc ; функция перевода числового значения в строковой тип

mov CX,0010 ; ставим основание системы

AA: ; Метка АА

cmp AX,0010 ; Сравнение

jb CB ; Если AX меньше, то переход в СВ

xor DX,DX ; обнуление DX

div CX ; деление на СХ

or DL,30H ; преобразование в символьный вид

mov [DI],DL ; записываем символ в строку

dec DI ; переходим к следующей позиции

jmp AA ; переход в АА

CB:

or AL,30H ; преобразование в символьный вид

mov [DI],AL ; записываем символ

ret ; выход из функции

SCHET endp

old_4a dd 0 ; ячейка хранения исходного времени

; текстовая информация

any db "Press any key...",10,13

db "$"

budil db "Budilnik uspeshno ustanovlen!",10,13

db " ",10,13

db "Cherez 5 sekund na ekrane budet 5 simvolov <*> ",10,13

db "$"

info db "Raschetno graficheskaya rabota", 10,13

db "Predmet: Sistemnoe programmnoe obespechenie",10,13

db "Vipolnil: Semenov D.V.",10,13

db "Studen gruppi IVT-314",10,13

db "Variant 18",10,13,10,13

db "$"

sSize db "Razmer programmy: bait.",10,13,"$" ; строка с размером программы

iSize=$-rgr ; вычисляем размер программы

text ends

end rgr ; точка выхода из программы

Результат работы программы:

Вывод:

В ходе выполнения данной расчётно-графической работы по дисциплине «Системное программное обеспечение» были усвоены навыки создания прикладных программ на основе низкоуровневых системных функций BIOS и MS DOS.

Заключение:

В результате разработки данного курсового проекта была усвоена работа с ассемблером, рассмотрена и реализована структура программы в виде com-файла, определяющая свой собственный размер в памяти и выполняющая прочтение текущего времени, прибавление к нему заданный интервал (например, 5 сек.) и установка будильник на полученное время DOS и BIOS.

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

  1. Методические указания для курсового проектирования по курсу «Системное программное обеспечение» / Уфимск.гос.авиац.техн.ун-т; Сост.:О.Д.Лянцев – Уфа, 1997 – 27 с.

  2. Стандарты в программной документации: Методические указания к курсовому и дипломному проектированию для студентов всех специальностей. – Уфа: УАИ, 1987 – 35с.

  3. Лабораторный практикум по дисциплине «Системное программное обеспечение» / Уфимск. гос. авиац. техн. ун-т. Сост.: О.Д. Лянцев. – Уфа, 2008. – 57 с.

Соседние файлы в предмете Системное программное обеспечение