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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
1 i1 G( q+ M# |, a//只读
. A+ n) F0 t3 k+ T+ g9 T+ ?, _ __asm{
' u' Z, S  f  r9 ^" h: n8 [4 ~, @  push eax;
' y, h% O8 K4 ^8 S0 Z4 ^0 b  mov eax, cr0; $ V2 p$ o$ b7 e2 P, B) o
  mov CR0VALUE, eax;
8 _  {. i, B+ ]% R8 a/ g  and eax, 0fffeffffh; / }% G6 H$ f* v( z
  mov cr0, eax;8 F: f0 }4 z: v1 E3 Y' J0 O
  pop eax;
0 v0 V- Q0 y3 ]# t2 s };1 b) p6 p* d" R3 S3 c' I# B1 L" g

. W2 y# V: E' [//取消只读
: H: i1 i& h5 I( A __asm{
0 {5 _2 l! G* L+ H6 v5 ?* t  push eax;. U* ]9 x- B6 E. c
  mov eax, CR0VALUE;
1 D* s0 t- }* Y7 a  v! F$ Y6 ?. r  mov cr0, eax ;- E2 e' Q/ w; Q  Z$ X% B1 o
  pop eax;: ~8 d! [. \! b" C' `( J+ y/ W; ]
};- W4 Q- Z2 s8 k

! L5 {0 c$ N/ X7 k* M. e以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-21 17:23 , Processed in 0.053828 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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