//------------------------------------------------------------------ // Dæmi um hvernig hægt er að nota smalamálskóda innan // í C++ forriti í Visual C++ // // Hjálmtýr Hafsteinsson, Uppbygging tölva //------------------------------------------------------------------ #include #pragma warning( disable : 4035 ) // Er alveg sama þó fallið skili // ekki gildi (það gerir það reyndar // Fib(n) skilar n-tu Fibonacci tölunni, n>=0, og er skrifað í smalamáli int Fib( int n ) { __asm { mov ebx, 0 ; EBX er fib_-1 mov eax, 1 ; EAX er fib_0 mov ecx, n ; Undirbúa teljara test ecx, ecx jz ut ; Ekkert að gera ef n=0 ; Fastayrðing lykkju: EBX = Fib_(i-1) og EAX = Fib_i aftur: add ebx, eax ; Fá næstu Fib tölu xchg eax, ebx ; Viðhalda röð á gistum loop aftur ; Reikna næstu tölu ut: } } void main( void ) { int n; cout << "n: "; cin >> n; cout << "Fib(n): " << Fib(n) << endl; }