- •Содержание
- •Введение
- •Варианты заданий:
- •Лабораторная работа №2 Вариантыпример отчетак содержанию
- •Варианты заданий:
- •Лабораторная работа №3 Вариантыпример отчетак содержанию
- •Варианты заданий к лабораторной работе №3
- •Лабораторная работа №4 Вариантыпример отчетак содержанию
- •Варианты заданий лабораторной работы №4
- •41. В прямоугольной матрице обменять первый столбец с последним.
- •Оценка результатов практикик содержанию
- •Рекомендованная литература
- •Отладка программы в среде отладчикаTd к содержанию
- •Разбор внутреннего представления командк содержанию
- •Примеры разбора команд
- •1. Команды с регистровой адресацией
- •2.Команды с прямой адресацией
- •3. Арифметические команды с непосредственной адресацией
- •4. Команда mov с непосредственной адресацией
- •5. Команды с использованием аккумулятора
- •6. Команды условного перехода (с относительной адресацией)
- •7. Команды безусловного перехода (с относительной адресацией)
- •8. Команда вызова подпрограммы (с относительной адресацией)
- •9. Команда завершения цикла (с относительной адресацией)
- •10. Команды с косвенной адресацией
- •Міністерство освіти і науки
- •Пример отчета по лабораторной работе №1к лаб. Раб.№1
- •Пример отчета по лабораторной работе №2к лаб. Раб.№2
- •Пример отчета по лабораторной работе №3к лаб. Раб.№3
- •Пример отчета по лабораторной работе №4к лаб. Раб. №4
Пример отчета по лабораторной работе №3к лаб. Раб.№3
Министерство образования и науки
Донецкий национальный технический университет
Кафедра компьютерной инженерии
Отчет
по лабораторной работе №3
на тему: Обработка одномерных массивов и организация вывода на экран
Выполнил:
Проверил:
Донецк 2013
1. Задание
В целочисленном массиве, содержащем четное количество элементов,в каждой паре соседних элементов расположить элементы по возрастанию. Определить пару с максимальной суммой элементов.
2. Блок-схема
Главная программа:
Процедура work:
Процедура printnumber. Входной параметр – Х: целое число
3. Листинг программы
;Условие.
;В целочисленном массиве, содержащем четное количество элементов,
;в каждой паре соседних элементов расположить элементы по возрастанию.
;Определить пару с максимальной суммой элементов.
sseg segment stack 'stack'
db 64 dup (?)
sseg ends
;
data segment
x dw 32767, -5, -32768, 4, 1, 56
ndw6
sdb' ','$'
msg3 db 'Максимальная сумма у пары N','$'
msg5 db 'Исходный массив :',13,10,'$'
msg6 db 13,10,'$'
msg7 db 'Преобразованный массив',13,10,'$'
msg8 db ' ','$'
max dw ?
maxn dw ?
data ends
;
code segment
start proc far
assume ss:sseg,ds:data,cs:code
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
leadx,msg6
lea dx,msg5 ;Исходный массив
call writestring
mov cx,n
mov si,0
vyvod: mov ax,x[si]
call printnumber ;Вывод элемента массива
inc si
inc si
lea dx,msg8 ;Вывод пробелов между
callwritestring;элементами
loopvyvod
; Обработка массива
call work
; Вывод обработаного массива
leadx,msg6
call writestring
lea dx,msg7
call writestring
mov cx,n
mov si,0
vyvod2: mov ax,x[si]
call printnumber
inc si
inc si
lea dx,msg8
callwritestring
loop vyvod2
; Вывод номера пары с максимальной суммой
lea dx,msg6
call writestring
lea dx,msg6
call writestring
lea dx,msg3
call writestring
mov ax,maxn
mov bl,4
div bl
mov ah,0
inc ax
call printnumber
lea dx,msg6
call writestring
ret
start endp
;
printnumber proc near
push ax
push bx
push cx
pushdx
push si
;Обнуление строки S для вывода числа
mov cx,7
mov si,0
met: mov s[si],' '
inc si
loop met
mov si,6 ;Смещение позиции 7-го символа
mov bx,10 ; Основание десятичной сист. счисл.
;Определяем знак числа
mov cl,' ';Используем пробел в качестве знака '+'
cmp ax,0
jge met1
mov cl,'-'
neg ax
met1: mov dx,0
div bx
add dl,30h ;К остатку в DL прибавим 30h и получим
;символ цифры
mov s[si],dl
dec si
cmp ax,0; В АХ частное. Когда АХ=0, то завершаем перевод
jne met1
mov s[si],cl ;Заносим знак в строку и
mov ah,09h ; выводим ее на экран.
lea dx,s
int 21h
pop si
pop dx
pop cx
pop bx
popax
ret
printnumber endp
;Процедура печати строки на экране.
;адрес строки передается в рег. DX
writestring proc near
push ax
mov ah,9h
int 21h
pop ax
ret
writestring endp
;основная процедура
work proc
mov si,0
mov cx,n ; сх:=n/2
shrcx,1 ;
m1: mov ax,x[si] ; В АХ первый элемент пары, а в
inc si ;
inc si ;
mov bx,x[si] ; ВХ второй элемент пары.
cmp ax,bx ;Если первый больше второго,
jle m2 ;обмениваем элементы пары.
mov x[si],ax ;
mov x[si-2],bx ;
m2: add ax,bx ; В АХ сумма элементов пары
cmp si,2 ; Если SI=2, то это первая
jg m33 ; пара элементов. ЕЕ сумму
mov max,ax ; принимаем за max и в maxn
mov maxn,si; заносим смещение элемента.
; Определение максимума
m33: cmp ax,max
jle m3
mov max,ax
mov maxn,si
m3: inc si
inc si
loop m1
ret
work endp
code ends
end start
3. Результаты работы программы
4. Выводы
В процессе выполнения лабораторной работы были усвоены принципы обращения и обработки одномерных массивов, а также способы вывода информации на экран. Результаты работы программы показывают правильность работы алгоритма.