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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
& ^  u2 o( h- `2 C2 Q# y3 I! U//只读1 }6 X0 H3 k; P8 C
__asm{' F' r9 t2 c' D9 v
  push eax;
7 `" u- N. b# |& Z" ]5 j2 o3 c  mov eax, cr0;
- c1 ~$ i! q- H1 @4 Z  mov CR0VALUE, eax;
, f6 W* z! D% |: u3 p  and eax, 0fffeffffh; ; ?9 @9 ~! c* r7 Q$ O& }4 K" p
  mov cr0, eax;: A% N0 O& z' A- F8 t
  pop eax;
. z7 \) z$ l$ ]$ r };, n, j6 b' X$ }
5 |+ |/ M# {7 O- k' V$ l  s2 |+ x+ j
//取消只读4 J: F/ \" n7 t
__asm{
0 g( s" Q, c* j2 ]) h0 Z8 `0 H. ?" l  push eax;
) N- m  ^3 ~0 U4 t: N8 v: {  mov eax, CR0VALUE; ; ^2 w, ?' {6 i. j, d
  mov cr0, eax ;2 ~/ G9 {# s/ \- e
  pop eax;
0 }  E& q- ]: w% t };
$ B1 h; r0 I5 S- `0 _* S8 S* s
1 X# S/ y" N$ @以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-5 00:35 , Processed in 0.023123 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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