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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
( @2 Q" G0 E  K3 I. Q3 |- ?: J$ l//只读
! x/ N  k, k, Z" A __asm{9 J& ?2 }6 |( a( f  l# k% H9 ?
  push eax;* q) }4 I# F) B" ^" h2 d
  mov eax, cr0; 6 J: n2 }' b. d0 E$ E. i( n: ]
  mov CR0VALUE, eax; 6 _6 X# H% B& N  ^; ^; c
  and eax, 0fffeffffh;
) y# K" X: r! p  mov cr0, eax;9 i! L; H' U! O6 v
  pop eax;/ m% Q6 o# C/ b% b2 M3 K6 \2 m
};
- y; E3 G, R2 G+ j5 i6 ?5 x / \" i. ]' G, q0 {6 h# n6 I7 m1 Y* S
//取消只读
( T2 b# i' v/ x __asm{
$ l3 W% z( P7 c! \6 ^  push eax;
4 i! b7 i* l, a' K; c9 _; @" b3 i& T  mov eax, CR0VALUE; : B5 s! O7 S; m
  mov cr0, eax ;
* o) D0 \- p, q  pop eax;* g* A) r" C' e) Y; o' {% ~
};
% [5 D* ]; k$ h; C0 j
+ ?) V9 L* z, f0 v以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 18:00 , Processed in 0.046815 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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