+ 4]
                  
                  
                    ret
                  
                  
                  main.c:
                  
                  
                  int main()
                  
                  
                  {
                  
                  
                    printf("eax: %08X\n", regGetEAX());
                  
                  
                  
                  
                  
                    regSetEAX(255);
                  
                  
                    printf("eax: %08X\n", regGetEAX());
                  
                  
                  
                  
                  
                    regSetEAX(0);
                  
                  
                    printf("eax: %08X\n", regGetEAX());
                  
                  
                  
                  
                  
                    printf("eax: %08X\n", regGetEAX());
                  
                  
                  
                  
                  
                  
                  
                  
                    return 0;
                  
                  
                  }
                  
                  
                  
                  
                  
                  На терминале:
                  
                  
                  eax: F7F9C7C8
                  
                  
                  eax: 000000FF
                  
                  
                  eax: 00000000
                  
                  
                  eax: 0000000E
                  
                  
                  eax: 0000000E
                  
                  
                  
                  
                  
                  Почему меняется состояние регистра? И можно ли как-то его сохранить?
                  
                  
                
Когда ты вызываешь функцию, она создаёт свой контекст, и после выхода из функции контекст разрушается.
Если ты пытаешься хранить свою личную переменную в каком то регистре то это невозможно. Большенство регистров интенсивно используются в том коде который получается при компиляции.
Обсуждают сегодня