; assembly ; x86-32, nasm ; eax := 1 mov eax, 1 mov eax, -1 ; kettes komplemens mov eax, 11111111111111111111111111111111b mov eax, 0xffffffff mov eax, 0ffffffffh ; regiszter ; eax, ebx, ecx, edx, esi, edi, (ebp), (esp) ; 32 bit mov edx, 1 mov eax, edx -------------------------------- eax 32b ---------------- ax 16b -------- al 8b -------- ah 8b ; nem: mov eax, al mov dl, ch add eax, 10 ; eax := eax + 10 sub eax, ecx ; eax := eax - ecx inc eax ; eax := eax + 1 dec eax ; eax := eax - 1 mul ??? ; edx:eax := eax * ??? (elojel nelkul) imul ??? ; edx:eax := eax * ??? (elojelesen) feladat: eax := ebx * ecx + edx 05 * 10 = 50 50 * 10 = 05 00 eax 77 ebx 05 ecx 10 edx 11 ; rossz mo. mov eax, ebx ; eax := 05 mul ecx ; eax*ecx=0050 ===> edx := 00, eax := 50 add eax, edx ; eax := 50 ; jo mo. mov eax, ebx mov esi, edx ; esi helyett jo ebx vagy edi is mul ecx add eax, esi cmp eax, ebx ; cmp = compare ; ezt csinalja: (eax - ebx) ja hamis_ag ; jump (??? feltetel) mov eax, 3 jmp vege ; jump, feltetel nelkul hamis_ag: mov eax, 4 vege: ; feltetelek: ; ja ... if above eax > ebx ? (elojel nelkul) ; jb ... if below eax < ebx ? (elojel nelkul) ; jg ... if greater eax > ebx ? (elojelesen) ; jl ... if less eax < ebx ? (elojelesen) ; je ... if equal eax = ebx ? ; jn??? ... if not ??? ; j?e ... if ??? or equal ; jn?e ... if not ??? or equal ; ja ==== jnbe int i = 0xffffffff; // elojel nelkul nagyon sok, // elojelesen -1 ++i; cout << i << endl; // (32 bites gepen) kiirja: 0