标签: pdp-11

"for(;;)"无限循环的习惯用法是否正确归因于PDP-11 C编译器?

最近我发现这篇文章声称偏爱无限循环的想法来for(;;)while(1),因为最初在PDP-11上可用的C编译器生成了额外的机器指令while(1).

顺便说一下,即使Visual C++警告也倾向于前者.

这种for(;;)成语的归属有多现实?

c c++ compiler-construction history pdp-11

10
推荐指数
3
解决办法
888
查看次数

有 pre-K&R c 的任何文档吗?

我正在玩在线 PDP11 模拟器(链接),并查看其常见问题解答的编程部分。

它是这样描述在模拟器上用 C 语言编程的:

你需要编写 pre-K&R C,它与现代 C 有很大不同

我相信这是指《C 编程语言》出版之前使用的 C 版本。我试图通过阅读在模拟器文件系统中找到的稀疏 C 文件来理解这个版本,但即使是像声明argcand这样简单的事情也argv让我无法理解。我在网上也找不到任何相关信息。

是否有任何关于“pre-K&R”C 的当时或事后编写的文档?

c pdp-11

3
推荐指数
1
解决办法
371
查看次数

优化比较指令计数(PDP-11)

对于PDP-11,我如何更改以下的程序集片段,以便它只有两个指令,但它们与这四个指令完成相同的工作?

tst r0
blt label
cmp r0, #75
bgt label
Run Code Online (Sandbox Code Playgroud)

assembly pdp-11

2
推荐指数
1
解决办法
497
查看次数

C程序如何在引擎盖下传递参数?

这是PDP-11代码混合C和汇编.在下面,u.u_rsav是一个数组指针,

savu(u.u_rsav);

该函数的汇编代码是

_savu:        bis     $340,PS
              mov     (sp)+,r1
              mov     (sp),r0
              mov     sp,(r0)+
              mov     r5,(r0)+
              bic     $340,PS
              jmp     (r1)
Run Code Online (Sandbox Code Playgroud)

看起来在进入程序之前,它首先推送参数,然后推送返回点PC值.因此,r1存储PC,r0存储参数.我的谜题是sp(堆栈指针)在汇编代码跳回调用点之前不会恢复到原始值.它仍然指向参数存储在堆栈中的位置.

c assembly stack compilation pdp-11

1
推荐指数
1
解决办法
123
查看次数

标签 统计

pdp-11 ×4

c ×3

assembly ×2

c++ ×1

compilation ×1

compiler-construction ×1

history ×1

stack ×1