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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
& f! e8 f8 Z4 C- U//只读
! a7 L+ {7 _* u6 J5 h7 w, }3 ]+ c __asm{: @8 x0 q" o9 W' F, v# G+ g, w, a
  push eax;/ Y' t2 T: @% D" }$ ~
  mov eax, cr0; ' \! V1 j& p+ a  g5 p# B6 ]
  mov CR0VALUE, eax;
. x( K- V9 j* g  and eax, 0fffeffffh; 3 K* P( _& A1 A8 f4 A+ u
  mov cr0, eax;
# v/ U9 E' |- E( e8 N. f" z  pop eax;" y  B/ @) T7 d% a
};
6 t; l; o: e+ `6 n4 I
& @9 ]2 a+ P  z! `& ~//取消只读# p% g8 K" U: J) b! Z4 n0 N4 V& S
__asm{: z+ ]; O; m; G0 J3 Y
  push eax;
8 l. o6 X) k& F- R: Q  mov eax, CR0VALUE;
) k3 l  ]$ ?8 C: k; @9 D9 ]9 }  mov cr0, eax ;! G! n' K7 ?9 L3 b9 \( ~8 t
  pop eax;  b+ s) v3 U% j
};( x, K$ O. }) ]& m; P( t" ~8 {3 S! h
. w9 C" w: i8 J6 v9 y6 r1 X' s1 H
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-20 00:23 , Processed in 0.090231 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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