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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;- N5 H, o6 l' E$ M
//只读8 b3 d$ W1 [. D1 S4 x
__asm{. M6 {& K! a5 {# E- g- e. `$ I& I
  push eax;* ]+ `3 k7 p$ i+ u% _/ f
  mov eax, cr0;
8 z/ U5 A: a, J  mov CR0VALUE, eax;
2 g' \5 K/ m7 x% \# [2 [  and eax, 0fffeffffh; % l- ~3 [; u1 N
  mov cr0, eax;
1 Z% a: D3 l9 q# E  pop eax;
: j9 b" y3 C/ l$ _ };
1 ^# g8 `) q, [0 J+ W% r $ s2 I  H5 ^" ^( q0 y2 i
//取消只读
) e, y* J* p  o: A __asm{
7 ?# l9 X: e$ U1 e$ s7 |7 K1 w  push eax;2 s3 Y$ W& W1 a& E! h/ G
  mov eax, CR0VALUE;
) \) B' m% Z& @0 T. L6 G6 d  mov cr0, eax ;7 H4 j. K+ E( d  q+ Z6 u$ k
  pop eax;9 W# F) ^) }9 h  J! n, a
};/ V. J# n8 z/ W. f

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 01:27 , Processed in 1.477531 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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