请教:哪种编译器能编译出16位程序,并且可以指定代码段开始地址?
代码段起试地址要在07c00h后面.谢谢各位大侠! 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
*/
asmmov ax, ds
asmmov 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!"
这一行有什么问题么? 原帖由 zhongfangqing 于 2007-11-15 16:41 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
char *pMsg="Hello world!"
这一行有什么问题么?
正常情况下,可以执行。
但是风格,实在不敢恭维。在大一些的程序里出现这样的语句,好象要成为Bug的。 TC是 可以的。。
页:
[1]
2