Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Процедури з параметрами

Автор:   •  Март 19, 2023  •  Лабораторная работа  •  321 Слов (2 Страниц)  •  137 Просмотры

Страница 1 из 2

Лабораторна робота №3

Тема. Процедури з параметрами

Мета роботи: набути практичних навичок складання, налагодження та виконання програм, написаних мовою Асемблер і оформлених у вигляді процедур з параметрами в середовищі програмування masm64.

Варіант 8

[pic 1]

[pic 2]

Код програми:

include win64a.inc ; підключені бібліотеки

count PROTO arg_a:QWORD, arg_b:QWORD, arg_c:QWORD, arg_d:QWORD, arg_e:QWORD, arg_f:QWORD

.data

_a1 dq 2

_b1 dq 4

_c1 dq 19

_d1 dq 2

_e1 dq 3

_f1 dq 4

_res1 dq 0

_res2 dq 0

_title db "ЛР3. Процедури. masm64",0

strbuf dq ?,0

_text db "Обчислити значення виразу: ef+d/c-ab", 0ah, "Результат: %d",0ah, "Адреса змінної в пам’яті: %p",0ah,0ah, "Автор: студент 2 курсу спец. ",10, 9, 0

.code

count proc arg_a:QWORD, arg_b:QWORD, arg_c:QWORD, arg_d:QWORD, arg_e:QWORD, arg_f:QWORD

mov r12,rdx ;збереження результату arg b

mov r11,[rbp+28h]  ; занесення arg_f

mov rax,[rbp+20h]  ; занесення arg_e

mul r11       ; множення  

mov _res1,rax ; тут 12

mov rax,r9 ; arg_d

div r8 ; arf_c ; ділення

mov rsi,rax ; тут 0

add rsi, _res1 ;додавання проміжкового результату

mov _res2,rsi ;збереження результату

mov rax,rcx ; занесення arg_a

mul r12 ; arg_b ;множення

mov r13,rax  

sub _res2,r13

ret

count endp

WinMain proc

sub rsp,28h; вирівнювання стеку 28h=32d+8; 32d x 8 = 256; 8 -повернення

mov rbp,rsp ; збереження вирівняного значення стеку

invoke count,_a1,_b1,_c1,_d1,_e1,_f1

invoke wsprintf, ADDR strbuf, ADDR _text, _res2

invoke MessageBox, NULL, addr strbuf, addr _title,MB_ICONINFORMATION

invoke ExitProcess,0

WinMain endp

end

Результат компілювання:

[pic 3]

[pic 4]

[pic 5]

Код програми:

...

Скачать:   txt (3.7 Kb)   pdf (174 Kb)   docx (741.2 Kb)  
Продолжить читать еще 1 страницу »
Доступно только на Essays.club