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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
/ ?( Y  S: I% I3 d* [( K//只读  V* a/ i  u0 z$ J) e
__asm{
: x' P$ c# M2 d4 p% o  push eax;
* s/ Q1 G0 G+ o, r  mov eax, cr0;
6 ^- C0 C5 q; T7 |  mov CR0VALUE, eax;
) n7 ~9 O  \0 W7 e1 W9 A" Q6 P  and eax, 0fffeffffh; 6 `9 X2 m3 B: e) a8 Y) Y
  mov cr0, eax;
6 |3 _( r! K9 N2 e- \* i* I  pop eax;# O- K! `- L5 n' J' Z+ K, c  X
};0 I: E/ ]" [5 z$ P' n7 P! y

( g% Q. p5 T) G' {# ~//取消只读% C4 w$ c( \6 V/ C& \0 K0 E
__asm{6 Q" ~9 Y! @9 _
  push eax;$ q* x$ e; c! i0 r% |
  mov eax, CR0VALUE; ' U4 X+ F- |! d5 n
  mov cr0, eax ;
! F$ I6 {- G5 b9 `! j  pop eax;
6 ~3 A  ^5 @8 D2 `! l };
1 H) ]" F' N. g! M1 ~) q& Q" q9 |0 o5 E3 H" R0 \
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-20 08:37 , Processed in 0.046478 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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