Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __declspec(naked)int somma(int a, int b) {
- __asm {
- push ebp //fisso
- mov ebp, esp //fisso ma in questo caso mnon serviva
- mov eax,dword ptr [ebp+8]
- add eax, dword ptr[ebp + 12]
- mov esp,ebp //fisso ma in questo caso mnon serviva, perchè non ho fatto alcuna push,canella le variabili locali nel caso le abbiamo utilizzate
- pop ebp
- ret //fisso
- }
- }
- __declspec(naked)int sommavettore(int *v, int b) {
- __asm {
- push ebp //fisso
- mov ebp, esp
- push esi
- push ebx
- mov ebx, dword ptr[ebp + esi]//solo il primo indirizzo del vettore
- mov esi,0
- Inizio:
- cmp esi, dword ptr[ebp + 12]
- je Fine
- add eax,dword ptr[ebx+esi*4]
- mov dword ptr[ebx + esi * 4],esi //questo nel caso io voglia scrivere all'interno di un vettore
- inc esi
- Jmp Inizio
- Fine:
- mov esp, ebp //fisso ma in questo caso mnon serviva, perchè non ho fatto alcuna push,canella le variabili locali nel caso le abbiamo utilizzate
- pop esi
- pop ebp
- ret
- }
- }
- int main() {
- int v[5] = { 1,2,3,4,5 };
- printf("somma= %d \n", somma(5, 7));
- printf("sommavettore= %d ", sommavettore(v,5));
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement