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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
+ f* J* }/ r$ N- d//只读
$ D* N/ c; M/ ~5 | __asm{
; u" r: I& p) I( p9 ?  push eax;
, K" r, N9 p- S  mov eax, cr0;
( c+ n7 I. J+ e2 V  mov CR0VALUE, eax; ' A6 ^2 @3 I2 K4 }8 s  T0 G( C0 u+ l# i
  and eax, 0fffeffffh; - A% d6 E1 v. B0 U. d' W( {2 m
  mov cr0, eax;
1 L8 q: ?" k$ S$ ~' z8 a7 ?, M7 ~  pop eax;% h# D$ K; M7 ~9 E0 |$ b3 I# u+ W, x
};8 I, m3 y4 Z9 [* l% Q

8 X8 p, ]% _( C9 E//取消只读0 R& f! O- @0 A' b9 w9 Q- H
__asm{0 Y$ U; F2 w' V- d. l6 k
  push eax;
" Q4 c) _5 h5 s6 ~' K; U; c  mov eax, CR0VALUE;
! e' _: y9 D0 \  k! K/ J) U/ x% p  mov cr0, eax ;
  `' s7 c% j# t4 V2 v  pop eax;7 v6 j, M# X* o+ G. U
};
+ t$ l9 I7 b# z+ P2 q* |* u. G( n; i4 e, N; }
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 01:11 , Processed in 0.042587 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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