请教:哪种编译器能编译出16位程序,并且可以指定代码段开始地址?

发布于 2022-09-26 12:32:46 字数 25 浏览 12 评论 0

代码段起试地址要在07c00h后面.谢谢各位大侠!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

记忆之渊 2022-10-03 12:32:46

gcc

你要用C语言写引导程序???

山川志 2022-10-03 12:32:46

nasm,gas,masm,tasm.

早期的bcc,tcc,

[ 本帖最后由 prolj 于 2007-11-15 14:39 编辑 ]

赤濁 2022-10-03 12:32:46

编译嘛直接生成二进制代码就行了

花伊自在美 2022-10-03 12:32:46

谢谢各位。是写一个用来备份的东西.
另外,gcc编译16位怎么指定参数.谢谢!

心病无药医 2022-10-03 12:32:46

djgpp也不行gcc就是32位的.

断念 2022-10-03 12:32:46

在TC中实验中,先搞个hello world,不过总是好象有问题.
各位帮看看

void ShowMsg(char *pMsg, int iMsgLen);

void main()
{
   char *pMsg = "Hello world!";
   int iMsgLen = 13;
   ShowMsg(pMsg, iMsgLen);
   return;
}
void ShowMsg(char *pMsg, int iMsgLen)
{
/*
  asm        mov es, seg pMsg
*/
  asm  mov ax, ds
  asm  mov es, ax
  asm        mov bp, offset pMsg
  asm        mov cx, iMsgLen
  asm   mov ax, 1300h
/*
  开始位置为11行23列
*/
  asm   mov dx, 0b18h
  asm   mov bx, 0003h
  asm   int 10h
}

/*
int 10h的13h号功能介绍:
es:bp=字符串地址
al=写方式(0~3)
cx=字符串长度
dh/dl=起始行/列
bl/bl=页号/属性
*/

污味仙女 2022-10-03 12:32:46

char *pMsg="Hello world!"
这一行有什么问题么?

余生一个溪 2022-10-03 12:32:46

原帖由 zhongfangqing 于 2007-11-15 16:41 发表
char *pMsg="Hello world!"
这一行有什么问题么?

正常情况下,可以执行。

但是风格,实在不敢恭维。在大一些的程序里出现这样的语句,好象要成为Bug的。

回眸一遍 2022-10-03 12:32:46

TC是 可以的。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文