《程序是怎样跑起来的》第十章读后感

第十章主要介绍了如何运用汇编语言来解析程序的结构。在这一章中,我们了解到汇编语言与本地代码之间存在着一一对应的关系,就像数学中的角度值和三角函数值一样,通过汇编语言编写的指令可以被转换为计算机可以直接执行的本地代码。

在这部分内容里,再次提及了函数调用机制,指出在汇编语言中,函数名实际上代表的是函数所在内存地址,这个点让我感到很惊奇。同时,本章还深入讨论了循环机制和条件分支,对于学习过C#等高级编程语言的同学来说,这些概念并不陌生,因为它们是编程基础中的重要组成部分。

此外,第十章详细解释了寄存器的作用,原来寄存器和栈有着相似的功能,在我刚接触这本书时,只知道CPU包含控制器、运算器、寄存器和时钟等部件,老师强调寄存器的重要性,现在看来确实如此。寄存器有多种类型,例如标志寄存器和累加寄存器等。关于栈的作用也在这一章得到了进一步阐述和加深理解。

我还学到了几个汇编语言的基本指令,比如mov指令,汇编语言的语句结构类似于英语中的“动词+宾语”,有时候也可能只有操作码而没有操作数。虽然计算机并不会像科幻电影那样真正地思考,但在运行特定程序时,它的确会表现出一定的自主行为,就像是我们和计算机玩游戏时,看似它有自己的想法。如果我们不了解计算机的工作原理,可能会认为它无法完成复杂的任务,但当我们编写相应的程序输入计算机后,就能得到意想不到的结果,比如书中提到的猜拳游戏实例,尽管计算机只是遵循指令运作,却能模拟出人的动作。

汇编语言是一种使用助记符表示机器指令的编程语言,每个助记符都对应着一种特定功能的本地代码。汇编语言编写的源代码也需要经过汇编器转换成本地代码才能被执行;同样,本地代码也可以借助反汇编程序转换回汇编语言源代码,这种逆向转换过程就称为反汇编。汇编语言的语法格式通常为“操作码+操作数”,其中操作码指示要进行的操作,操作数则是该操作的对象。具体能够使用哪些操作码取决于所使用的CPU类型。

当本地代码加载到内存后,CPU会从内存中读取指令和数据,并将其暂存在内部的寄存器中进行处理。相较于C语言等高级编程语言,使用汇编语言编写同样的功能可能需要更多的代码行数,但这同时也意味着对硬件资源有更直接和精细的控制能力。

posted on 2024-02-19 20:14  TheVanGoghSunflower  阅读(10)  评论(0编辑  收藏  举报