问题标签 [bcc-compiler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Linux C 创建没有头库的自定义 printf 函数
我正在为我正在为类分配工作的引导加载程序创建自己的 prinf(),这意味着我必须使用 BCC 编译器并且我不能使用系统库,因为它们不存在。我确实有能力根据需要使用在汇编中设计的 putc() 函数和字符串库函数 strcmp 等来帮助我。
我似乎遇到了逻辑问题。
如果我在 Linux (cc) 上编译的测试文件中定义它:
然后我可以运行 ./a.out 并收到HI! :42949672: :0: :1: :0: :1: :42949672:
正确的结果。
我创建了自己的 printf 函数,当我看到打印的东西时,我看到了HI! :23592: :655: :0: :1: :0: :1:
,这是不正确的。我试过只用整数打印,效果很好,但是当我尝试打印无符号长整数时,我遇到了问题。
这是我的代码:
任何人都有任何提示,因为我被卡住了,需要一些帮助。
编辑(下午 2 点 06 分):我已将所有 u16/unsigned short 更改为 unsigned long,并且事情已更改为打印HI! :L: :0: :0: :: :: :1:
linux - ld86 编译中的 auto_start 错误
我正在尝试在 Linux 下编译一个相当基本的程序,但遇到了ld86
. 有人知道是什么auto_start
吗?
2012 年 3 月 12 日更新:当我定义自己的printf()
...
c - bcc 兼容性的编译问题
昨天,我和我的朋友设置了我们的开发环境,开始执行学校作业。我们的教授给了我们一些汇编代码来编译和链接我们自己的 C 代码来替换一个 linux 引导程序。然而,由于某种原因,代码在我朋友的机器上编译得很好,但给了我一堆编译错误。这段代码是教授给出的,所以我知道它一定是正确的。我们检查了我们的密件抄送版本,它们是相同的。这是错误输出:
这是使用这个 shell 脚本生成的:
最后是 main.c,它正在编译错误:
c - 寻找预处理器命令以删除代码中的命令
我正在开发一个有时使用的 C 库
定义函数时。
现在我尝试将它移植到不支持“静态内联”的旧 C 编译器。这是 bcc - Bruce 的 C 编译器。
我可以在头文件中使用替换的命令吗
和
在包含此头文件的所有程序中?
c - 如何使用 Bruce 的 C 编译器进行编译以获得在 8086 处理器上运行的 asm 文件
我有这个小c代码
这是一个简单的移动平均函数
我想获得与此代码对应的汇编代码,但是,我想要可以在处理器 8086 上运行的 x86 ISA 汇编代码
看了之后我运行了这个命令
这以错误告终
如何编译我的文件以获取汇编代码?
c++ - “必须调用成员函数或其地址在函数中” C++ 错误
我正在编写一个C++
与线程一起工作的程序。当我尝试创建一个进程时,我收到以下错误:Member function must be called or its address taken in function
. 这是我的代码:
我在这两行中得到错误:
我已经尝试了一切。我已经尝试过(&(wrapper))
,PCB::wrapper
但&PCB::wrapper
没有任何帮助,它只会给我更多的错误。PCB
是类的名称。
如果有人有想法,请帮助。
bcc-compiler - BCC LD86 文件的幻数错误
我想在 DOSBox 中编写一个简单的 hello world 程序,所以我从这里下载了 Bruce 的 C 编译器。并编写了这个程序:
我像这样运行 bcc: bcc -o hello hello.c
,但每次都会收到此错误:
我不知道为什么会发生这种情况,如果有人可以告诉我请做。
c - 编译 ld86 的问题:未定义的符号 auto_start
我正在尝试使用 ld86 编译一些程序集和 C 代码。这样做时,我遇到了一个问题:“未定义的符号:auto_start”
我已经搜索过这个,遇到了这个堆栈溢出问题,这和我的一模一样。但是,他们从主函数中删除参数的解决方案对我不起作用。我正在寻找更多潜在的选择。
我的 tc 代码:
对于bs.s:
c - For循环遍历数组导致无限循环
我有一段代码应该在按下回车键时刷新一个字符数组,只有代码无限循环,我不知道为什么。
有一个字符数组,每次按下一个键时都会获取一个新字符。当检测到回车键时,将执行以下代码以在屏幕上生成新行之前用 '\0' 字符刷新字符数组:
每次按下一个字符(除了输入(ASCII 13))时,i 在主循环中都会增加。该字符也被添加到缓冲区[]。该代码未在此处显示,但我可以重现它。不用说,即使该代码不正确地增加了 i,循环也应该在 i 达到 0 时结束(并且考虑到减量,我应该在某个点达到 0)。
所以理论上,在按下回车键时,如果行上有 5 个字符(并且没有退格),缓冲区 [] 元素 0-4 将具有字符,并且 i 将等于 5。代码中的循环应该用 '\0' 字符替换元素 5 到 0。诚然,从元素 5 开始是不必要的,但它不应该导致我一直在经历的行为。
这种行为是循环无休止地运行。现在我已经能够通过使用我的 putchar 函数在每次循环运行时打印一个字符来验证这一点。现在我想我可以编写另一个函数来打印 i 的值,我可能会得到我的问题的答案。此外,对于它的价值,当我将这个循环变成等效的“while”循环时,就会发生无限循环。
我只是想确保这里没有明显的东西会导致无限循环行为。对不起,如果这是一个愚蠢的问题。谢谢你的帮助。该程序以 16 位实模式作为原始二进制文件运行。我正在从 bcc 编译到 as86 到最终的二进制文件。
编辑:在进行更多调试后,我确认 i 以正确的正值进入循环(基于数组中的字符数,例如,如果 7 个字符,则 i = 7)。然而,在 for 循环中,i 在 -1 和 -2 的值之间无限交替。由于基于 i 的输入值(或基于循环的条件)没有任何意义,这是否有可能是某种内存或寄存器问题?
最终编辑:问题似乎是 >= 导致 i 变为负数的条件。由于某种原因,即使 for 循环中的条件检查是否为负 i,这也会导致无限循环。感谢所有的帮助。