Краткое описание (32-битная сборка)
Почему это приводит к неправильной ошибке операнда?
unsigned int GetPID() {
unsigned int id;
__asm {
mov id, fs:[0x20];
}
return id;
а не это?
unsigned int GetPID() {
unsigned int id;
__asm {
mov ebx, fs:[0x20];
mov id, ebx;
}
return id;
}
Я новичок в использовании ассемблера в C, и я хотел бы получить некоторые пояснения о том, как все работает, когда я его использую.
Примечание. Я знаю, что использовать эту функцию, чтобы получить текущий идентификатор процесса, плохо. Это всего лишь эксперимент, я также изучаю операционные системы.
Дополнительный вопрос: можно ли написать половину функции в скобках? а затем закончить функцию с C? или каждая функция должна быть либо всей C, либо всей сборкой?