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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;. T/ x5 n' x8 p
//只读
; }& R- U+ m( r& P4 D8 N/ c __asm{; d5 H) P. I; H
  push eax;
7 r. m/ I9 {8 A& f  mov eax, cr0;
& N' x9 ?9 p$ n3 I0 A0 y9 J  mov CR0VALUE, eax;
3 w  T, y) \8 {2 ]7 o+ F$ {8 r  and eax, 0fffeffffh; 4 v: v& b! u. l- X* q7 c. S8 Y
  mov cr0, eax;7 t7 k% O% B' M, e! w$ g  `
  pop eax;; G8 M% G8 C9 x. K3 Q
};2 I* ^: t* F: @
6 c5 |& F' K# O% f1 Y# f
//取消只读6 I1 _* d* m. Y2 d( v' a
__asm{
- W$ C  V1 F2 M9 B6 J; Y  push eax;: @" [0 ?2 j: m0 A. ?. T; _
  mov eax, CR0VALUE; 8 a& g( b6 e& A7 t0 T8 B. h; q+ G
  mov cr0, eax ;+ f% G4 E+ X( T% z
  pop eax;: x% O$ k: V" j) e( G' I" {( j" K- I
};: ]) P$ N/ C/ ^: f; O" K7 y

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-12 00:35 , Processed in 0.085510 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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