简短说明(32位版本)
为什么这会引发不正确的操作数错误?
unsigned int GetPID() {
unsigned int id;
__asm {
mov id, fs:[0x20];
}
return id;
Run Code Online (Sandbox Code Playgroud)
但是不是吗?
unsigned int GetPID() {
unsigned int id;
__asm {
mov ebx, fs:[0x20];
mov id, ebx;
}
return id;
}
Run Code Online (Sandbox Code Playgroud)
我是在C中使用汇编语言的新手,我想对使用它时工作原理进行一些解释。
注意。我知道使用此功能获取当前进程ID是错误的。这只是一个实验,还可以学习操作系统。
附带问题:可以在汇编括号中编写函数的一半吗?然后用C完成功能?还是每个功能都应该全部为C或全部为汇编?