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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;& g- Y7 R3 t1 f+ Z& @" ]6 s5 a# ^
//只读
* g1 \' C6 ?% v5 l* Z+ g9 e __asm{
# g9 ^* [2 h  v' e4 @  push eax;
. U5 T/ J4 a& V, Z7 D  mov eax, cr0;
2 O2 ^! T* A+ s9 R% t5 O  mov CR0VALUE, eax;
/ d1 q: F$ S( Z7 S  and eax, 0fffeffffh;
. Q( M7 X9 d/ Y" n# w  mov cr0, eax;
8 |! H! E7 ~9 G9 d+ M4 S. ~1 y3 E  pop eax;
  a6 n; B: K, y6 K3 C# O };6 {4 s. `# N5 }2 M% I1 G0 h

- [$ x/ w4 E; T+ V' o//取消只读
  o9 r, a6 F* D+ `& B5 x __asm{
1 I4 G9 y) x3 h- q8 E  push eax;
/ W# R/ i& B* w# C5 G  mov eax, CR0VALUE; " ^5 S' s+ C& e3 @" M9 J7 P8 u
  mov cr0, eax ;% K" K; |% J+ H
  pop eax;
* l) P  N$ c5 s1 j- ~* u };& n4 W( }+ d/ Q( ^7 U
3 O4 B1 K; P. C
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-22 02:26 , Processed in 0.071041 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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