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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
  Q: ~- \2 |( R* m6 L; G0 v2 N! E//只读. c* m. N0 e, W8 m
__asm{
% A2 L6 d* T  w9 g3 u$ k  push eax;
  b9 E' i& f/ @' E7 N  mov eax, cr0;
% B! i. A: E( x* o  mov CR0VALUE, eax; * U+ U, t, n" K# a# R9 _( W) ^, C
  and eax, 0fffeffffh;
, ^* l. Y2 C9 [, |' A  mov cr0, eax;
1 _1 E3 c" S1 N" Q( s4 d  pop eax;* c$ E. |; U3 v5 N8 @
};
: s0 j9 H$ d* C& p3 P8 |! I ! c/ O. x0 `1 t9 T' K1 A
//取消只读
* F; i7 u/ @0 u$ l __asm{
2 P7 M. E# K/ C/ m1 `  push eax;
! c* K2 m" n, b3 Y- `8 j8 N  mov eax, CR0VALUE;
$ h+ I. B' U" y  j* M  mov cr0, eax ;
; ~" @' K/ Q8 W6 S( C  pop eax;4 f; m4 \' ?4 W7 L- o
};
% }/ M( E/ B/ c
1 U6 Y6 W  j% d4 ^以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-20 07:38 , Processed in 0.215434 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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