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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;3 C. Q& h- c, x% j
//只读
% D2 ~$ c) L2 J0 ` __asm{
. L1 |  B- E" z$ {( K3 N- {  push eax;! |) q$ }/ w: s( f+ [: h+ _3 }$ Q
  mov eax, cr0; 5 {7 v( \4 c0 ?) _7 u1 n
  mov CR0VALUE, eax; 2 C! Z2 z) ?/ ?3 X
  and eax, 0fffeffffh; 2 l( f: e7 X; V" p; S
  mov cr0, eax;
5 K$ O4 \: `" c' E- U4 n" g  R1 u  pop eax;
  a2 s  h* c+ k };: i9 K0 \' N5 c- V, {; d

# l; E# Z. s  v+ [2 ?$ u//取消只读
2 I" B8 f  U- {- s, ] __asm{2 Q. |2 X* c9 A: z2 s
  push eax;
9 E, _# K. t4 a% j  mov eax, CR0VALUE; & R+ E+ B. D& o# P6 Y7 W
  mov cr0, eax ;) p$ w' S: B  q
  pop eax;) U4 H( Y7 ~* R, F/ n
};
# x# n, p9 n6 A
7 S, m- ?5 T" Z+ s) `$ ~以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 07:55 , Processed in 2.061948 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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