Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Лабораторна робота № 6.
Тема: "Взаємодія процедур через таблицю адресів
мовою ассемблера для ПЭВМ типу ІBM PC/XT/AТ.
Мета: Придбання і закріплення практичних навичок в організації
взаємодії процедур через таблицю адрес параметрів мовою
ассемблера .
Індивідуальне завдання:
5. Задано масиви А и В по N = 50 елементів (констант типу WORD).
Визначити кількість пар елементів, що задовольняють умові
Aі > Bі.
Хід виконання лабораторної роботи.
Текст програми на мові Assembler:
data segment
n dw 50
k dw 0
ta dw 4 dup (?)
a dw 5 dup (0,1,2,3,4,5,6,7,8,0)
b dw 5 dup (9,8,7,6,5,4,3,2,1,0)
data ends
stak segment stack
dw 32 dup (?)
tos label word
stak ends
code segment
assume cs:code,ds:data,ss:stak
beg: mov ax,data
mov ds,ax
mov ax,stak
mov ss,ax
mov sp,offset tos ; Установка указателя на вершину стека
; Формирование таблицы адресов параметров
mov ta, offset n ; адрес n
mov ta+2,offset a ; адрес a
mov ta+4,offset b ; адрес b
mov ta+6,offset k ; адрес k
lea bx,ta ; адрес таблицы адресов параметров
call far ptr pr1 ; Вызов процедуры
mov cx,k
k5: mov ah,2h
mov dl,'*'
int 21h
loop k5;
mov ah,4ch ; Выход
int 21h ; в DOS
;
code1 segment
assume cs:code1
pr1 proc far
push ax
push cx
push dx
push si
push di
mov si,[bx] ; адрес n
mov cx,[si] ; n
mov si,[bx+2] ; адрес a
mov di,[bx+4] ; адрес b
push bx ; Сохранение адреса таблицы в стеке
xor ax,ax
mov dx,ax
m1: mov bx,[si]
cmp bx,[di]
jng m2
inc ax
m2: add si,2
add di,2
loop m1
pop bx ; Восстановление адреса таблицы из стека
mov si,[bx+6] ; адрес k
mov [si],ax ; k
pop di
pop si
pop dx
pop cx
pop ax
ret
pr1 endp
code1 ends
code ends
end beg
Ініциалізація
масивів
да
нет
|
|||||
нет
да
|
Результати роботи програми
Стан області даних до виконання програми :
-d ds:100
0D1C:0100 50 51 52 56 57 8B 37 8B-0C 8B 77 02 8B 7F 04 53 PQRVW.7...w....S
0D1C:0110 33 C0 8B D0 8B 1C 3B 1D-7E 01 40 83 C6 02 83 C7 3.....;.~.@.....
0D1C:0120 02 E2 F1 5B 8B 77 06 89-04 5F 5E 5A 59 58 CB 00 ...[.w..._^ZYX..
0D1C:0130 0A 00 00 00 01 00 02 00-03 00 04 00 05 00 06 00 ................
0D1C:0140 07 00 08 00 00 00 09 00-08 00 07 00 06 00 05 00 ................
0D1C:0150 04 00 03 00 02 00 01 00-00 00 00 00 00 00 2C 0D ..............,.
0D1C:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0D1C:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-g
****
Программа завершилась нормально
Стан області даних після виконання програми :
-d ds:100
0D1C:0100 50 51 52 56 57 8B 37 8B-0C 8B 77 02 8B 7F 04 53 PQRVW.7...w....S
0D1C:0110 33 C0 8B D0 8B 1C 3B 1D-7E 01 40 83 C6 02 83 C7 3.....;.~.@.....
0D1C:0120 02 E2 F1 5B 8B 77 06 89-04 5F 5E 5A 59 58 CB 00 ...[.w..._^ZYX..
0D1C:0130 0A 00 00 00 01 00 02 00-03 00 04 00 05 00 06 00 ................
0D1C:0140 07 00 08 00 00 00 09 00-08 00 07 00 06 00 05 00 ................
0D1C:0150 04 00 03 00 02 00 01 00-00 00 04 00 00 00 2C 0D ..............,.
0D1C:0160 00 00 02 00 16 00 2A 00-00 00 00 00 00 00 00 00 ......*.........
0D1C:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
Висновки по роботі.
У роботі ознайомилися:
- с взаємозв'язком по керуванню процедур, поміщених в один вихідний
модуль ( файл );
- с взаємодією процедур за даними за допомогою таблиці (списку)
адреу параметрів.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.