Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Мета роботи: Здобуття та закріплення практичних навичок у організації взаємодії процедур через таблицю адрес параметрів мовою асемблера.
Задано масив А із 100 елементів (констант типу WORD). Структура масиву А:
-------------------------
| X1 | Y1 | X2 | Y2 |...|
-------------------------
Сформувати масив В із елементів Хі, для яких виповнюється: Хі=Yі.
2.Алгоритм вирішення
Описано 2 масиви. Далі в циклі в АХ та ВХ записуються 2 послідовні елементи масиву А. Якщо вони рівні то їх значення записується в масив В та лічильник однакових елементів збільшується на 1. Інакше – лічильник циклу зменшується і розглядаються 2 наступні елементи. Цикл повторюється 50 разів.
3.Блок-схема алгоритму
4.Вибір змінних для написання программи
А - вхідний масив із 100 констант.
В – вихідний масив із 50 чисел. Для запису однакових значень масиву А.
Т – строка для виводу інформації на монітор.
N - лічильник циклів перевірок масиву А.
DATA segment
A dw 10 dup(2,2,-1,-1,5,6,7,4,4,4) ; vxodawij massiv
B dw 50 dup(0) ; vixodawij massiv
T db 'Procedures',0ah,0dh,'$' ; text
N dw 50 ; kol-vo elementov v A
TA dw 3 dup(?) ; tablica adresov
DATA ends
CODE segment
assume cs:CODE,ds:DATA
Begin:mov ax,data
mov ds,ax
mov ah,9h
lea dx,t ; soobshenie na ekran
int 21h
lea bx,ta
lea ax,A
mov [bx],Ax
lea ax,B
mov [bx+2],ax
lea ax,N
mov [bx+4],ax
call far ptr pr1 ; vizov proceduri
mov ah,4ch ; normalnoe zavershenie raboti
int 21h
CODE ends
CODE1 segment
assume cs:code1
pr1 proc far
push ax
push cx
push dx
push si
push di
mov si,[bx+4] ; zagrujaem N
mov cx,[si] ; schetchik
mov si,[bx+2] ; massiv B
mov di,[bx] ; massiv A
xor ax,ax
mov dx,ax
m1:mov ax,[di] ; v ax zapisivaem A[0] (na pervom proxode)
mov dx,[di+2] ; v bx zapisivaem sledujuwij element
cmp ax,dx ; sravnenie (ax-dx)
jne m2 ; esli ax!=dx
mov [si],ax ; esli ax==dx
add si,2 ; perexod na sled. element B
m2:add di,4 ; perexod na sled. element A
loop m1 ; na nachalo cikla
pop di
pop si
pop dx
pop cx
pop ax
ret ; vozvrat
pr1 endp
CODE1 ends
end BEGIN
Массив B до виконання дій над ним:
-d ds:c7
13CC:00C0 00-00 00 00 00 00 00 00 00 .........
13CC:00D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13CC:00E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13CC:00F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13CC:0100 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13CC:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13CC:0120 00 00 00 00 00 00 00 00-00 00 00 00 50 72 6F 63 ............Proc
13CC:0130 65 64 75 72 65 73 0A 0D-24 32 00 00 00 00 00 00 edures..$2......
13CC:0140 00 00 00 00 00 00 00 .......
Массив B після виконання дій над ним:
-d ds:c7
13CD:00C0 00-02 00 FF FF 04 00 02 00 .........
13CD:00D0 FF FF 04 00 02 00 FF FF-04 00 02 00 FF FF 04 00 ................
13CD:00E0 02 00 FF FF 04 00 02 00-FF FF 04 00 02 00 FF FF ................
13CD:00F0 04 00 02 00 FF FF 04 00-02 00 FF FF 04 00 02 00 ................
13CD:0100 FF FF 04 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13CD:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
13CD:0120 00 00 00 00 00 00 00 00-00 00 00 00 50 72 6F 63 ............Proc
13CD:0130 65 64 75 72 65 73 0A 0D-24 32 00 00 00 C8 00 39 edures..$2.....9
13CD:0140 01 00 00 00 00 00 00 .......
Висновки: На даній лабораторній роботі я придбав та закріпив навички у написанні та відладці програм мовою асемблера із використанням таблиці адрес.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.