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

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

[复制链接]
发表于 2008-12-15 11:06:50 | 显示全部楼层 |阅读模式
ULONG CR0VALUE;
; D/ {( k8 A: C0 ?  F, c+ v//只读; ~7 [/ l# O3 u' d1 Z4 \8 |* Y
__asm{: o$ c. P3 l* ^1 d7 `
  push eax;
. {9 f/ U0 K+ w# y6 k9 ^  mov eax, cr0; 4 m2 k6 B1 A+ q) }9 H
  mov CR0VALUE, eax;
9 l: ~7 `2 L4 m% D  and eax, 0fffeffffh;
% Q: c4 l) ?% I/ m; @: H) c: D, u% T  mov cr0, eax;
( C2 {, U0 c1 I3 L; q  pop eax;
3 y! `8 K) d6 y8 ?% k; Z' N% G/ l! U' T };
& f" d8 t" X' h2 v$ D5 D 3 C9 k8 }* x7 O) Y0 N2 U: T
//取消只读# c/ ~: t) d) y& L& r+ @3 m/ M
__asm{4 `. t2 y$ _/ v% ?. n' Q
  push eax;
# i9 o- j/ o4 n& d# Q  mov eax, CR0VALUE; ' W% s: j6 p0 ^, n' U- \8 M! f! i
  mov cr0, eax ;3 a  I$ O. c7 U! W7 s) Z
  pop eax;; b  \7 x8 g' m
};! ^3 i' i/ F" C2 [# r; d# u
, q" A& r9 C. V+ G6 h
以上是一段C里面调用的汇编的程序,但是这段程序只可以在32位的OS下使用,不可以在64位的OS下使用,请哪位大哥帮忙代码转给64位上可以使用的代码。谢谢!
发表于 2008-12-15 17:24:00 | 显示全部楼层
64位编译器不能使用嵌汇编,要不完全写C函数(看你的代码是不可能了),要不自己写个纯汇编函数然后在C语言中调用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 07:14 , Processed in 0.125698 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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