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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
4 k% Z" u3 N" K4 J9 R//只读
* d7 a0 F: V+ B0 @+ R __asm{& u/ l  M, u* R
  push eax;7 S, J* f8 p$ k$ h. l/ {9 v, q
  mov eax, cr0; / _& t2 b) u7 u7 O4 c. J
  mov CR0VALUE, eax;
8 x9 o2 S7 X) V8 j1 v  and eax, 0fffeffffh;
3 b- j) F$ r2 ]' A) j1 n  mov cr0, eax;
# A3 C% \9 X1 L* o+ \  |& O  pop eax;5 J8 i$ P4 D' D; t; d! v
};
2 k# r  o& N4 q% D6 I ! R' m- H  N( t7 F. A
//取消只读; b# v- d* m5 o( m, u4 _
__asm{- {" B4 x- Q+ v4 m' c5 p' u
  push eax;
( t3 p" l' @( ~" U" }; N' `  mov eax, CR0VALUE;
; b2 d& F6 A3 X9 N  mov cr0, eax ;1 f# j! h; Z4 K- |9 \- U
  pop eax;
( e7 H+ u, O( @ };5 {, X; m- j7 E% ^* K) q( Y5 q

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-4 18:24 , Processed in 0.082304 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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