PolomWUS
驱动牛犊
驱动牛犊
  • 注册日期2003-06-20
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2239回复:11

菜鸟请教:纯DOS下如何用C/C++编译器编译32位代码?

楼主#
更多 发布于:2003-06-30 17:13
我写了一个C程序,需要读写32位寄存器,如ECX,EAX等,其中如下使用
_EAX = 0x1234;
但是上面的代码在Borland C++ 3.1下编译不通过,原因是它不支持EAX 32位寄存器。
现在问题是我如何在纯DOS下用C/C++编译器编译这样的代码,请前辈指点~~~
i m a newer~~:D learning... GOOD GOOD STUDY, DAY DAY UP.
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-06-30 17:25
Options->Compiler>Advanced code generation,
Instruction Set,
80386
PolomWUS
驱动牛犊
驱动牛犊
  • 注册日期2003-06-20
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-30 17:37
我是这样作了,但是好像Borland C++ 3.1不支持_EAX这样写发,
我直接用asm eax,0x1234也不行?

上面前辈是不是能确认那样做能行,是不是我还有些东东没弄好 ?
i m a newer~~:D learning... GOOD GOOD STUDY, DAY DAY UP.
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-30 18:11
纯DOS是16位的;保护模式汇编是32位的,但编译是在window环境下的,现在已经没有你所讲的纯DOS了.
在VC++下,可以用asm mov eax,1234
PolomWUS
驱动牛犊
驱动牛犊
  • 注册日期2003-06-20
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-30 19:13
我是启动PC时选DOS进入DOS的,这时用BC3.1编译器,不能编译使用eax寄存器的程序。
不过,如果我在Windows下用BCB编译使用eax寄存器的程序是没问题的。
i m a newer~~:D learning... GOOD GOOD STUDY, DAY DAY UP.
PolomWUS
驱动牛犊
驱动牛犊
  • 注册日期2003-06-20
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-30 19:16
不过我在Windows环境下用BCB编译的Consle应用程序是不能在纯DOS下运行的(这是应该的)

一句话,就是我如何在纯DOS环境下编译读写32位寄存器的代码?
i m a newer~~:D learning... GOOD GOOD STUDY, DAY DAY UP.
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2003-06-30 21:43
刚试了,
int main()
{
_EAX = 0x1234;
_EBX = 0x1234;

return 0;
}

BC++ 3.1,可以编译通过。
PolomWUS
驱动牛犊
驱动牛犊
  • 注册日期2003-06-20
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-01 10:13
多谢arthurtu等!!!

我在公司下了一个新的BC31,也能用了。
估计我在家处理的时候忘了什么东东吧,回头再研究研究它~

i m a newer~~:D learning... GOOD GOOD STUDY, DAY DAY UP.
PolomWUS
驱动牛犊
驱动牛犊
  • 注册日期2003-06-20
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-01 10:17

我要买单了,请问如何结贴?



---------
i m a newer~~~
i m a newer~~:D learning... GOOD GOOD STUDY, DAY DAY UP.
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-01 11:27

我要买单了,请问如何结贴?



---------
i m a newer~~~


第一贴下有个\"给分\"
lsn_061
驱动老牛
驱动老牛
  • 注册日期2002-05-09
  • 最后登录2006-10-06
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望261点
  • 贡献值0点
  • 好评度169点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-03 16:24
各位老大不好意思.....我个你们翻出来.....我正在用BORLAND C3.1++

那个EXAMPLES无法编译通过.....就是那个GRAPHICS.H有问题....

帮忙呀! :P没法编译通过.....系统98.....

[编辑 -  3/3/05 by  lsn_061]
[img]http://bbs.zndev.com/image/medal/5.gif[/img]
lsn_061
驱动老牛
驱动老牛
  • 注册日期2002-05-09
  • 最后登录2006-10-06
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望261点
  • 贡献值0点
  • 好评度169点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-03-03 16:46
把bgi得.obj连接lib库时出现错误.

..undifined symbol ...*****........in mould egaphc

..undifined symbol ...*****........in mould egaphc

..undifined symbol ...*****........in mould egaphc

..undifined symbol ...*****........in mould egaphc

warning:  no stack :(

[编辑 -  3/3/05 by  lsn_061]
[img]http://bbs.zndev.com/image/medal/5.gif[/img]
游客

返回顶部