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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;% r) T! N3 g. n( s& j2 W
//只读' b: ?+ v5 S5 w( E. K" \/ X
__asm{
9 ^2 {5 B3 ]+ G5 f3 s  push eax;6 X1 m& }& r2 r
  mov eax, cr0; 3 P( O3 V6 ?! }
  mov CR0VALUE, eax; % s& v" w5 U( W) y& J
  and eax, 0fffeffffh; 3 M1 H7 a0 H$ q: q( F: t6 ^
  mov cr0, eax;9 a" V2 J: J- H) b& J0 }! J8 \
  pop eax;
- g" G) G" ]. Q& C! r };
" G! Y9 I, r1 s8 `4 z9 | ( x3 M- r$ g8 o! g* s1 f  ?
//取消只读
! \1 V8 d4 Q. g* r; D  `4 ` __asm{
: J0 ^: t7 O% V* Q  push eax;
: R% r1 ^, y; A# ]- n# p  mov eax, CR0VALUE;
1 v5 S  u( j7 w4 y/ S' U  ^  mov cr0, eax ;# I& }, Y+ Y+ l. W: \% x
  pop eax;$ E0 G6 Z' d9 [/ B- J/ c, j7 Q6 N. X
};, w/ ?/ L. C+ F. C5 c) m4 ~+ S' B
. `8 E" T4 D& g8 y8 u
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-10 10:46 , Processed in 17.803601 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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