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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
( ^& m# `: g6 W+ c//只读
+ p" I: \, s) R* J" z, V9 Q" L. m __asm{: q. z0 O3 q. b" v9 I* c
  push eax;. L& N! r. J" }
  mov eax, cr0;
* W4 b+ Y2 S3 C- a8 X  mov CR0VALUE, eax;
: U7 `+ y  W5 w$ z  }3 ]# g6 @8 Q  and eax, 0fffeffffh;
: m2 h2 ~, ^8 ^' q/ w# P  mov cr0, eax;: D, |, I/ b( O
  pop eax;
7 t' B! Q8 a5 w: Q8 ~ };
% X& U" b! \, X2 l. |- \; Z8 T- L 9 I: C# q2 b8 T& ^5 y
//取消只读& \/ G  q1 i: {2 {2 g
__asm{; {9 u$ J3 X  g( Q- c2 p; A0 |
  push eax;
* r& v  N5 G/ ]9 c7 j) |5 e  mov eax, CR0VALUE;
2 g% s2 ^, f$ @" i3 b6 H  mov cr0, eax ;
0 F" \; C7 i$ w. o; c$ X  pop eax;7 D) {( w  ~# J. f
};4 b9 |# Z- k1 g* ^1 w  J! k; J* }
$ y. K2 m6 n* p, @1 \
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 07:23 , Processed in 0.083356 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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