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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;- B2 `; R% Q. @$ Y
//只读
& \) H* \( ^4 U! u, D! v2 b" x5 d __asm{0 _0 k! \0 `9 m- _  A
  push eax;
2 [/ p/ m  v9 w4 [4 I+ V  mov eax, cr0;
0 [8 s5 j  @' Q# q& u7 p. H  mov CR0VALUE, eax; 9 Z' {7 o* K3 k8 {9 u+ ~0 U- C
  and eax, 0fffeffffh;
5 m: @; R# g" U4 Q1 ?0 T% ?  mov cr0, eax;
9 x/ t, `4 Z1 c) O" E6 n8 ^6 w7 T2 G  pop eax;
# Z2 u: _0 X3 Z9 B" \* i3 v7 B; F" \4 I };
9 M, c9 {, k" E' E4 a! C- p4 ? ( y( j% }3 x0 w& u' x1 D  [0 M: T
//取消只读
9 g/ e* i$ ^/ V% W" x( W9 X! D __asm{
! k& E! Z; c  `; V- J. D8 C  I0 x  push eax;; }. F5 G4 a' u! A( y2 x
  mov eax, CR0VALUE;
5 L+ a0 z/ B* y, H. f$ y4 Q  mov cr0, eax ;; C# e# e, K+ ~  Q. c) k  _9 c
  pop eax;
* z0 l1 a& m1 X" G2 H };
6 {  v1 U& }. ]9 S5 J4 e; ]$ s1 l. E% f' y& R4 _6 K# w- w
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 04:10 , Processed in 0.055582 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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