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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;+ ^$ [# r5 s$ D+ x, h3 k
//只读  p9 F8 Q9 _! y" u$ ?, e8 c
__asm{
7 o2 ?% H  t" ~) m# \" ?7 g  n0 X0 e/ l  push eax;
0 u" f1 h! h& n0 \6 H: S5 w% `  mov eax, cr0; , p8 [6 B' s' C; \2 t0 H
  mov CR0VALUE, eax; : ?$ r7 Y! X- p: ?+ D) {
  and eax, 0fffeffffh;
* s+ G/ |$ Y3 ?( T5 @1 m5 b  mov cr0, eax;
1 v, `/ F1 ?7 _) @$ i" p  pop eax;1 Z, v3 f& i0 I0 b+ k
};* N! |3 e: J$ I& b
$ p0 q& c- w# b7 K% j( s6 G2 W
//取消只读9 w/ X/ s) ?! q) [: S0 ~$ Z" D
__asm{7 c; p# `1 z- i/ m0 l( f3 |! u% P. g
  push eax;
: F5 e/ N3 g- K, A9 S# Q& t  mov eax, CR0VALUE;
. r! |8 Z" q% x: T7 V7 v) L  mov cr0, eax ;
. k- i7 m1 @3 k% E1 E  pop eax;
* p$ p$ i# T6 |; P: s4 v };
+ v+ f" H( m* `: t( ~7 r8 W( L) u' g# s1 Q$ a$ F
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-1 21:27 , Processed in 0.124332 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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