Вариант 12 Лаба 04 |
200,00 ₽
Просмотров: 622
|
Тип работы: | Контрольная |
Название предмета: | Основы системного программирования |
Тема/вариант: | Вариант 12 Лаба 04 |
Объем работы: | 5 |
ВУЗ: | СибГУТИ |
Дата выполнения: | 2013-08-12 |
Размер файла, тип файла: | 9.14 Kb, RAR |
Прикрепленные файлы: |
Курс 170 Основы системного программирования (952 Kb)
|
ЛАБОРАТОРНАЯ РАБОТА 4
Тема: Использование процедур
Цель работы: Научиться описывать и использовать процедуры.
Порядок выполнения работы:
1. Наберите и оттранслируйте следующую программу. (Программа содержит процедуру, которая вычисляет сумму элементов массива. Параметры передаются в регистрах: SI содержит указатель на первый элемент массива; CX содержит количество элементов в массиве; результат возвращается в AX).
TITLE Program8 |
;название программы |
.MODEL small |
;отводим под стек и под данные по 64Кб |
.STACK 100h |
;отмечаем начало сегмента стека |
.DATA |
;отмечаем начало сегмента данных |
A DW 5, 3, 9, 4, 5 |
;описание массива из 5 элементов |
.CODE |
;отмечаем начало сегмента кодов |
main PROC |
|
Mov AX, @data |
;копируем адрес |
Mov DS, AX |
;сегмента данных |
Mov SI, OFFSET A |
;заносим в SI начало массива А |
Mov CX, 5 |
;в СХ заносим количество итераций |
call VecSum |
;вызов процедуры VecSum |
Mov AX,4C00h |
;выход |
int 21h |
;из программы |
main ENDP |
|
VecSum PROC NEAR |
;описание процедуры |
Mov AX, 0 |
|
Cld |
|
or CX, CX |
|
jz VecSumExit lodsw |
|
dec CX |
|
L1: |
|
Add AX, [SI] |
|
Add SI, 2 |
|
Loop L1 |
|
VecSumExit: |
|
Retn |
|
VecSum ENDP |
|
END main |
|
Сообщить другу