我一直在研究Programming from the Ground Up上一本旧的Dell Dimension PC上的书,该PC在2006年左右购买,具有32位体系结构并运行32位Xubuntu安装。我喜欢前6章,并且感觉到到目前为止,我正在“了解”汇编语言,并为自己奠定了进一步学习的良好基础。
但是,我被困在Chapter 7 example(关于书中显示内容的第125页; PDF阅读器认为是的第131页)上。具体来说,当我在open调用之后立即添加自己的无条件跳转时,允许我将%eax的值移至%ebx并因此使用echo $ ?:
进行检查。在设置“不存在”方案时,我对输入文件进行了以下调整:
在所有3种情况下,系统调用5均返回254。 我想知道,如果找不到文件,它会创建文件吗?但是在我眼前的书中说,将立即数$ 0移入寄存器%ecx会指示系统调用#5打开一个只读文件。
从我的Google搜索中,看起来汇编语言直接击中系统调用不是正常的事情;实际上,程序员会从C调用Linux C包装程序。这是有道理的-我希望以后能学习C-但是,如果能读过本书的人(或者仍然只是向导)会很棒。可以帮助解决此特定错误,从而帮助自己(以及希望本帖子的其他读者)通过本书的示例进行工作,而不必承认失败。