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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;0 e' e) x  `2 w( ^
//只读
! Y5 Y" F! P* X# G' J( K __asm{; s" V( E: u6 e: l7 t) ~3 t  b
  push eax;
9 A2 @1 I, G& B# p  mov eax, cr0;
+ d4 e2 B' c1 F4 a( ?! G# M/ p  mov CR0VALUE, eax;
) p4 I+ Q, l3 r( |3 j- P& }  and eax, 0fffeffffh; ; I2 f9 \/ k( h, M, V3 `3 c
  mov cr0, eax;
) `% d' x, D% v; {  pop eax;! M! ~& q. Z2 _; B, u2 C6 }8 E
};. @! A( m8 N: d4 y; ^  p( _

1 o: d# Q" h. |* E4 ?9 b//取消只读
- u' @" v& _7 p4 ^% w __asm{
9 r0 A+ a& U& j$ s( M- g  push eax;5 B& n0 R8 l4 j7 ]/ n3 Z, o
  mov eax, CR0VALUE; 9 [+ \, g. B5 {+ u* J
  mov cr0, eax ;7 c3 K2 ?; u/ [  p! z5 A
  pop eax;. e/ a( E+ g0 W0 H9 ]1 B
};
, l( g2 U# O8 \- S7 b8 R3 F! g  v( d. Z1 a# ^$ {( Q& Z& V
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-15 18:19 , Processed in 0.105747 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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