ВУЗы и колледжи

Помогите с написанием программы на АССЕМБЛЕРЕ!!! (внутри)

Помогите написать программу для матрицы. я не пойму как работать с матрицами в ассемблере (задание на фото)
Nury Ataev
Nury Ataev
1 415
У меня четыре вопроса:
1. Для какого процессора должна быть написана программа?
2. Для какого компилятора или в какой среде требовалось писать программу?
3. В какой операционной системе должна выполняться программа?
4. Почему этот вопрос размещён не в категории "Программирование"?

.586
.model flat, C
option casemap :none

printf proto :dword, :vararg
_putch proto :dword
_getch proto
_exit proto :dword

RandInt proto :dword
RandDouble proto

.data
Txt1 db "Дан массив A[%u]:", 10, 0
Txt2 db 10, 10, "Сформирована матрица B[%ux%u]:", 10, 0
Txt3 db 10, "Для завершения работы нажмите любую клавишу... ", 0
Frmt db "%8.2lf", 0

.data?
Seed dd ?
N dd ?
A dq 9 dup (?)
B dq 9 dup (9 dup (?))

.code
N165649894:
rdtsc
btr eax, 31
mov Seed, eax
invoke RandInt, 8
add eax, 2
mov N, eax
invoke printf, addr Txt1, N
mov ecx, N
xor edi, edi
sub esp, 8
mov dword ptr [esp], 200
mov dword ptr [esp + 4], 100
finit
@@:
invoke RandDouble
fimul dword ptr [esp]
fisub dword ptr [esp+4]
fstp qword ptr A[edi*8]
push ecx
invoke printf, addr Frmt, dword ptr A[edi*8], dword ptr A[edi*8+4]
inc edi
pop ecx
loop @B

invoke printf, addr Txt2, N, N
add esp, 4
mov ebp, esp
mov dword ptr [ebp], 1
mov ecx, N
xor ebx, ebx
RowLoop:
push ecx
xor esi, esi
mov ecx, N
@@:
push ecx
fld qword ptr A[esi*8]
fimul dword ptr [ebp]
fstp qword ptr B[ebx+esi*8]
invoke printf, addr Frmt, dword ptr B[ebx+esi*8], dword ptr B[ebx+esi*8+4]
inc esi
pop ecx
loop @B
inc dword ptr [ebp]
mov eax, N
shl eax, 3
add ebx, eax
invoke _putch, 10
pop ecx
loop RowLoop

add esp, 4
invoke printf, addr Txt3
invoke _getch
invoke _exit, 0

RandInt proc uses edx, Range :dword
mov eax, Seed
imul eax, eax, 08088405h
inc eax
mov Seed, eax
mul Range
btr Seed, 31
mov eax, edx
ret
RandInt endp

RandDouble proc uses eax edx
local Const :dword
mov Const, 3 shl 28
invoke RandInt, 0
fild Seed
fmul Const
ret
RandDouble endp

end N165649894

Алексей Лавров
Алексей Лавров
51 590
Лучший ответ