Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- using namespace std;
- int estePrim(int)
- {
- _asm {
- mov ebx, [ebp + 8]
- cmp ebx, 1
- jle nuEstePrimSigur
- mov ecx, 2
- mov esi, 1
- while1:
- cmp ecx, ebx
- jge stopwhile1
- mov edx, 0
- mov eax, ebx
- div ecx
- cmp edx, 0
- je amGasitDivizor
- inc ecx
- jmp while1
- amGasitDivizor:
- dec esi
- stopwhile1:
- mov eax, esi
- jmp eGata
- nuEstePrimSigur:
- mov eax, 0
- eGata:
- }
- }
- int check(int *, int)
- {
- _asm {
- mov ecx, [ebp + 8]
- mov ebx, [ebp + 12]
- mov eax, ebx
- mul ebx
- mov esi, 0
- mov edi, 0
- mov edx, 0
- while1:
- cmp edx, eax
- jge stopwhile1
- cmp edi, [ebp + 12]
- jl justGo
- mov edi, 0
- inc esi
- justGo:
- mov ebx, esi
- add ebx, edi
- test ebx, 1
- jz trebuiePus1
- pushad
- push ebx
- call estePrim
- pop ebx
- cmp eax, 1
- je trebuiePus2
- popad
- mov dword ptr [ecx + edx * 4], 3
- inc edx
- inc edi
- jmp while1
- trebuiePus2:
- popad
- mov dword ptr [ecx + edx * 4], 2
- inc edx
- inc edi
- jmp while1
- trebuiePus1:
- mov dword ptr [ecx + edx * 4], 1
- inc edx
- inc edi
- jmp while1
- stopwhile1:
- }
- }
- int main()
- {
- int m[3][3];
- int n = 3;
- _asm {
- lea eax, m
- push n
- push eax
- call check
- add esp, 8
- }
- for (int i = 0; i < n; ++i)
- {
- for (int j = 0; j < n; ++j)
- {
- cout << m[i][j] << ' ';
- }
- cout << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement