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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
* U$ A  Y- ~$ s, O7 {$ c//只读
8 ^6 ^1 y) c! [( m  ~7 ~3 L" p: P. z __asm{
- J4 [- ]" D" j& z/ B  push eax;7 u3 x* U2 P8 T3 G  O
  mov eax, cr0;
$ i& H, }3 g) m& L5 y5 {  mov CR0VALUE, eax;
3 I$ w; S' M  z9 s+ Q  and eax, 0fffeffffh;   r' M9 |! c8 J  |8 {7 I& X
  mov cr0, eax;# M1 U/ j/ a( y  @
  pop eax;
5 ^4 N! m5 h  d; r( W) g };5 J! A1 |1 f/ i* _7 k
6 Q0 \* P; W9 c9 o
//取消只读
# D  i1 k; ?8 |/ m3 @' @5 W __asm{, [! R6 e& d- I8 W
  push eax;5 P1 q8 k# y4 T, j- L* z9 ]4 x" H
  mov eax, CR0VALUE;
9 H3 m6 Q! z& _/ j2 G7 Q8 S  mov cr0, eax ;+ l& v% P2 a) ^0 n
  pop eax;( w% J* u. Q& |; i1 q
};0 r* T% I4 T$ Z0 j" H1 v$ r
: v! A1 ]& e/ I1 f9 L
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 13:31 , Processed in 0.363695 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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