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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;2 Y# x7 y% ^/ B6 w* b. v* R
//只读# ~" z$ w( e8 y6 ?: M: N7 _8 V1 O
__asm{
$ m# y  ^7 A, B, y! Q# I  push eax;* i$ R( m: ]* x
  mov eax, cr0;
6 E/ l/ x" _- C' I/ ]/ [  mov CR0VALUE, eax; 4 k3 |  C  B( m2 P+ s! L
  and eax, 0fffeffffh; 9 c% O  ~1 S8 P
  mov cr0, eax;6 @# B7 `' t# J# W0 v+ A6 j' R
  pop eax;  S; |6 F* j$ O+ J
};8 M  b% ~) B7 {2 U$ O0 N
! z/ N: w4 E" \0 F' E) _0 L
//取消只读* L! B; w9 Q4 s$ T& }1 S9 B$ U" G
__asm{
1 b) g7 W9 t  D  push eax;
! Z% H. f9 D0 w1 o# o2 u  mov eax, CR0VALUE;
+ i# f$ l" M8 S# l1 n* b0 b* B  mov cr0, eax ;
5 o, k+ O* f  {" C( F( A  pop eax;
7 X" x* X+ p" H9 P };$ B/ Q. R; m( v. T4 N. P% x

* z& d4 Z3 S4 i& T' H$ \* C( m以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-2 20:22 , Processed in 0.074666 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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