Windowsってアセンブリで作られてる?
■ このスレッドは過去ログ倉庫に格納されています
0022デフォルトの名無しさん
2010/12/04(土) 19:52:39int getPSPsegment()
{
int psp = 0;
asm volatile(
"movb $0x62, %ah;"
"int $0x21;"
"movl %ebx, %eax;"
"movl %eax, -4(%ebp);"
);
return psp;
}
int main(int ac, char **av)
{
fprintf(stdout, "%08x", getPSPsegment());
return 0;
}
上のプログラムを cygwin の gcc でコンパイルしたのですが
Windows Vista の cmd.exe で実行するとアクセス違反で死にます
"int $0x21;"
の行だけ消すとエラーは出なくなります
int 21H を呼びたいのですがどうすれば良いでしょうか?
■ このスレッドは過去ログ倉庫に格納されています