#include "stdafx.h" #include "stdio.h" static int iCislo, iVysledok, iCislo2; // Niektore verzie potrebuju globalne premenne int main(int argc, char* argv[]) { int iCislo; int iCislo2; iVysledok = 0; printf("zadaj prve cislo\n"); scanf("%d",&iCislo); printf("zadaj druhe cislo\n"); scanf("%d",&iCislo2); #ifdef __GNUC__ // Tato cast sa preklada len v Dev-C++ (gcc) asm(".intel_syntax noprefix \n" // Prepneme z AT&T syntaxe na na Intel "mov eax,_iCislo,_iCislo2 \n" // iCislo -> EAX "add eax \n" // EAX ++ "mov _iVysledok,eax \n" // EAX -> iVysledok ".att_syntax \n"); // Dame vsetko do povodneho stavu #elif _MSC_VER // Tato cast sa preklada iba v MS Visual C++ __asm { // zaciatok bloku asm MOV EAX, iCislo // do EAX vloz hodnotu premennej iCislo (z pamate) ADD EAX, iCislo2 // pripocita iCislo2 MOV iVysledok,EAX // do premennej iVysledok vloz vysledok z registra EAX } // koniec bloku asm #endif printf("\n%d + %d = %d",iCislo,iCislo2,iVysledok); printf("\n\nStlac ENTER a skoncime..."); scanf("?"); getchar(); getchar(); return(0); }