русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лабораторная работа 1. Вычисление арифметического выражения.


Дата добавления: 2014-11-27; просмотров: 1140; Нарушение авторских прав


 

 

к лабораторному практикуму по курсу

 

"Операционные системы" для студентов специальностей

220200 – Автоматизированные системы обработки информации и управления и

351400 – Прикладная информатика в экономике

 

Подписано к печати 30.12.2004 Формат 60х84 1/16.

Бумага писчая. Печать плоская. Усл. печ. л.2,25.

Усл. кр. –отт. 2,0. Уч. –изд. л. 2,0. Тираж 100 экз.

Заказ №

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

Центр оперативной полиграфии УГАТУ

450000, Уфа-центр, ул. К. Маркса, 12

Оформление лабораторных работ.

Отчет должен содержать следующие пункты:

  1. Задание.
  2. Контрольный пример.
  3. Блок-схема (кроме лабораторной работы 1)
  4. Текст программы.
  5. Результаты выполнения программы.

 

Лабораторная работа 1. Вычисление арифметического выражения.

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

Для выполнения этой работы следует взять за основу исходный текст программы “Labn1.ASM”. В сегмент данных вписать свои переменные и их значения. В сегмент кодов в процедуру MAIN ввести операторы, выполняющие действия, соответствующие индивидуальному заданию.

Ниже приведен пример заполнения текста программы для вычисления Y=(A+B)/C2.

 

DSEG SEGMENT

; индивидуальные переменные начало

a dw 3

b dw 8

c dw -2

;индивидуальные переменные конец

y dw ?

text1 db 10,13,'Вычисление значения функции y = (a + b) / c*с',10,13,'$'

text db 'ответ y=$'

buffer db 6 dup(?),'$'

DSEG ENDS

 

STACKSG SEGMENT

dw 100 dup(?)

stacksg ends

 

codes segment

main proc far

assume cs:codes,ds:dseg,ss:stacksg

mov ax,dseg

mov ds,ax

lea dx,text1

call prt

; индивидуальная часть программы начало



mov ax,c

imul ax

mov bx,ax

mov ax,a

add ax,b

cwd

idiv bx

mov y,ax

; индивидуальная часть программы конец

lea dx,text

call prt

mov ax,y

call prn

 

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

int 21h

 

mov ah,4ch ; конец программы, выход в операционную систему

int 21h

main endp

; ***********************************************

prt proc ; процедура печати текста

; в регистре dx хранится адрес начала текста, который нужно напечатать

push ax

mov ah,09h

int 21h

pop ax

ret

prt endp

; ***********************************************

prn proc ; процедура печати целого числа

; в регистре ax хранится целое число, которое нужно напечатать

push bx

push dx

push ax

lea bx,buffer

call convba

mov dx,bx

mov ah,09h

int 21h

pop ax

pop dx

pop bx

ret

prn endp

; **************************************************

convba proc ; процедура перевода двоичного числа в строку ASCII-кодов

; в регистре ax хранится целое число, которое нужно преобразовать в ;строку ASCII-кодов

;в регистре bx - адрес начала поля, в котором будет получено число

; в формате ASCII-кодов.

push cx

push dx

push si

push ax

mov cx,6

c10:

mov byte ptr[bx],' '

inc bx

loop c10

mov si,10

or ax,ax

jns c20

neg ax

c20:

xor dx,dx

div si

add dx,30h

dec bx

mov [bx],dl

or ax,ax

jnz c20

pop ax

or ax,ax

jns c30

dec bx

mov byte ptr[bx],'-'

c30:

pop si

pop dx

pop cx

ret

convba endp

; *************************************************

codes ends

end main

 

Для защиты лабораторной работы нужно знать

  1. Типы сегментов. Регистры. Загрузка сегментных регистров.
  2. Команды сложения, вычитания, умножения, деления.
  3. Команда CALL.
  4. Процедуры PRT, PRN,. CONVBA.

 

Варианты заданий:

  1. Y=(A+B*C)/2
  2. Y=(A+B)*(C-D)/S2
  3. Y=(A-B2)/ (C-D)
  4. Y=A/B2-100/D
  5. Y=(A-B+C)2/S
  6. Y=(A+B)3-C/D
  7. Y=A3+B*C/(A-D)
  8. Y=((A+B)/(C-D))*S
  9. Y=(A2+B*C)/D
  10. Y=(A+B+C)/(2*D)
  11. Y=(A3+B*C)/A-D
  12. Y=(A3+B)*C/A
  13. Y=(A+B2)/(C2-D3)
  14. Y=A+B2/(C-D3)
  15. Y=(A-B)/(C2+D3)
  16. Y=A/B+(C-D)/3
  17. Y=A*B-(C-D)/2
  18. Y=A3/B+C-D/3
  19. Y=(A*C-D)/(3*B)
  20. Y=3*A/(B+C-D)
  21. Y=A*B+C/D-L
  22. Y=(A*B+C)/D-L
  23. Y=A*B+C/(D-L)
  24. Y=A*(C+B)/D
  25. Y=(A*C+B)/D2
  26. Y=(A+C*B)/2*D
  27. Y=(A*C+B*D)/2
  28. Y=A2+(C+B)/(D-2)
  29. Y=A2*C+(B/D-5)
  30. Y=A*C+B2/D2
  31. Y=2*A*(C+B/(D+2))
  32. Y=(A*C+B)/(D2+10)
  33. Y=A*(C2-B)/D
  34. Y=A+(C-B)2/(D+4)

 



<== предыдущая лекция | следующая лекция ==>
Уфа 2005 | Лабораторная работа 2. Программа табулирования функций, использующая ввод чисел с клавиатуры.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.083 сек.