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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
- v1 N8 t5 o+ `8 X* p//只读1 y$ e6 r. s  v3 _. }/ q
__asm{
9 X2 |, X8 _8 R6 V% o0 i$ f% R# Y  push eax;5 N* a# T! _% z) k: F% O
  mov eax, cr0; ; N8 \  q) E+ W8 p! f+ F$ M% P
  mov CR0VALUE, eax; ; y) n, u1 l! w" |1 [$ s8 ~
  and eax, 0fffeffffh;
$ P2 i) V% A0 s: J; p  mov cr0, eax;5 ]5 ^1 T+ \- ^* w
  pop eax;
4 a: r, s+ T1 A3 J5 V7 [; l6 L };
6 ?. ^$ a& ]8 X9 Z9 i
0 k! ^' A4 ?. N% ]: R& D+ H//取消只读% D( B3 H) l$ H8 N9 S+ B: G, B
__asm{
4 ^3 h) N+ x' u( S$ z* E  push eax;
1 e( L# k9 T! ]7 n5 T  mov eax, CR0VALUE;
, V3 F# k+ D# E. @2 R  N* g& v9 @  mov cr0, eax ;
+ w6 ]; C9 u, S" s0 w* e  pop eax;( A; Q4 s, B- e/ o2 e% V+ e- h1 M. l
};; Y( t2 k7 Z% D; G9 @$ d

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-24 22:38 , Processed in 0.038180 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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