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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
+ p" v$ A5 {0 O  e/ a//只读( h" W- E) p: ^% U3 f
__asm{1 m' S% b6 X, @0 L" S
  push eax;
) j2 `3 L! y) @0 Z% Y  mov eax, cr0; ' D: u. W( g5 R5 f" y* f  g- N
  mov CR0VALUE, eax;
7 b6 E& C8 [) z0 _  and eax, 0fffeffffh; - S. _& V: u/ i
  mov cr0, eax;+ K# m4 i2 l$ j$ L' _+ ^# C2 F0 V
  pop eax;: q: J! f$ |* y+ B4 n1 _
};- \% t, ^2 Y: O9 j+ ]

- C$ [* `8 s; z) s8 _9 ~//取消只读
6 E' J& K8 g  G4 J, h! x __asm{6 z. x3 G1 Q( B  Z) \# ~+ Q8 y$ F
  push eax;
, d5 X3 Q/ w8 \; W4 Q  mov eax, CR0VALUE; * P  p$ U. y9 a' @9 ~
  mov cr0, eax ;
+ \; y0 n5 g1 U$ L+ ^0 |  pop eax;
: r/ X( p% w7 d! ?- W };+ L- n/ g2 Y- g- I" k4 N
8 l7 d6 e) k+ Z: y8 ]
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 19:18 , Processed in 0.055443 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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