找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 8447|回复: 1

求教,如何将32位代码转为64位代码。

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
+ u: E$ X/ T7 S, P! \- s  S, U//只读; M( F* p- x6 W/ k- P' a8 q
__asm{* D, s1 L4 o2 @" [
  push eax;: U! A2 U  I4 x5 K
  mov eax, cr0; ! r7 m% l' A4 b) [
  mov CR0VALUE, eax; ! ]* r" k% `8 E& d( J& X2 q3 J% ~
  and eax, 0fffeffffh; $ r) s  K( C# T6 x! Y7 C! o$ Y- m+ p3 }
  mov cr0, eax;
% X9 H4 p# {8 J$ {0 E5 s  pop eax;
. q. r, ]2 f' `+ Z4 b8 z };
5 o: Z3 u, E/ e& W' ^/ `* r9 X ; _- }& y: T- q0 |( |
//取消只读# l# O% [7 I# H& ]2 ]: [! F
__asm{5 @+ J! K9 z/ U: d. ?
  push eax;
5 e) a* n& F  @" J, O  mov eax, CR0VALUE;
. D7 `! e4 E/ n% h  E9 D, s5 I  mov cr0, eax ;
" v" S, C* B( q* ~  pop eax;% N# q2 c6 R5 i
};
% j0 d0 `9 `* J8 J6 X) K# W2 o8 Y6 \7 W
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2024-5-20 19:57 , Processed in 0.019216 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表