请教:哪种编译器能编译出16位程序,并且可以指定代码段开始地址?
代码段起试地址要在07c00h后面.谢谢各位大侠!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
代码段起试地址要在07c00h后面.谢谢各位大侠!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
gcc
你要用C语言写引导程序???
nasm,gas,masm,tasm.
早期的bcc,tcc,
[ 本帖最后由 prolj 于 2007-11-15 14:39 编辑 ]
编译嘛直接生成二进制代码就行了
谢谢各位。是写一个用来备份的东西.
另外,gcc编译16位怎么指定参数.谢谢!
djgpp也不行gcc就是32位的.
在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=页号/属性
*/
char *pMsg="Hello world!"
这一行有什么问题么?
正常情况下,可以执行。
但是风格,实在不敢恭维。在大一些的程序里出现这样的语句,好象要成为Bug的。
TC是 可以的。。