首页 > 编程语言 >《程序是如何跑起来的》第一章

《程序是如何跑起来的》第一章

时间:2024-01-20 20:47:42浏览次数:27  
标签:汇编语言 程序 第一章 如何 指令 寄存器 机器语言 CPU

1.1节先向我们展现了程序运行流程

接着阐述了CPU的内部组成部分,即寄存器控制器运算器时钟这4个部分。
最后解释了内存和程序的运行机制。

1.2节提到了汇编语言,汇编语言通过助记符来编写程序,每一个原本是电气信号的机器语言的指令都会有一个与其相对应的助记符,汇编语言和机器语言基本上是一一对应的。汇编是汇编语言编写的程序转化为机器语言的过程,反汇编过程与其相反。
根据功能不同大致可以把寄存器分为八种。
其中基址变址和通用寄存器通常不止一个。

1.3节通过实例向我们展现了程序计数器决定着程序流程。

1.4节首先提出程序的流程分为顺序流程条件分支循环三种。接着具体的解释了三种流程的概念。
然后给我们展现了条件分支的示例。
最后提到程序的比较指令在CPU内部实际上通过减法运算来实现。

1.5节首先强调在函数调用中,当完成函数内部的处理之后,必须让程序流程返回函数被调用的地方继续执行。
接着指出函数调用指令和被调用的函数之间的数据传递是通过内存和寄存器来完成的。
要想将程序计数器的值设置为函数调用指令的下一条指令的地址,就需要使用调用指令返回指令这两条机器语言指令,下面这是解决这类问题的示例。

1.6节主要讲解了基址寄存器变址寄存器的功能。
使用这一对寄存器,我们可以对特定的内存空间进行划分,按照数组的方式对其进行使用。

CPU会将基址寄存器和变址寄存器的值相加计算出实际的内存地址,其中変址寄存器的值就相当于高级语言编辑程序中数组的下标。

1.7节向我们展示了机器语言的类型,下面这张表是按照CPU能执行的机器语言指令的功能划分的类型。

标签:汇编语言,程序,第一章,如何,指令,寄存器,机器语言,CPU
From: https://www.cnblogs.com/231chang/p/17976302

相关文章

  • 《程序是怎样跑起来的》第一章
    心得:知道了许多关于CPU的知识,了解了低级编程语言(机械语言、汇编语言)和高级编程语言等(但我理解的比较浅)知识点(我觉得是的):1、程序是指令和数据的组合体2、CPU能够直接识别和执行的只有机器语言(CPU是用来表示计算机内部元件功能的术语)3、硬盘和磁盘等媒介上保存的程序被复制到内......
  • 如何恢复已经删除的 docker 容器的数据
    前言使用docker自带的volume机制进行数据的持久化,docker会在宿主机的特定位置(/var/lib/docker/volumes)维护各个volumes,面对容器删除的问题,有如下几个结论:容器启动(dockerrun)时,即使没有显示的指定-v-mount参数,容器的相关数据已经被作为volumes持久化存储了,比如在/var/li......
  • 如何判断一个平方数?
    今年SNOI2024的有一道题的大意是算出一个序列里的哪些子区间的积是平方数.初看来说,判断一个数是不是平方数,我们至少有如下三种策略.首先我们有一个很简单,也很精确的算法,就是直接高精度实现\(\lfloor\sqrtx\rfloor\),然后看看平方回去是不是\(x\),通过高精度的Ne......
  • 对于《程序是怎样跑起来的》我的理解
    首先,作者从计算机的硬件组成和指令集体系结构讲起,让我成功地理解了CPU、内存、硬盘等组件的工作原理。通过生动的图解和示例,我逐渐明白了计算机是如何将二进制代码转换成可执行的指令,以及这些指令是如何驱动程序运行的。其次,书中详细介绍了函数调用机制和数组的使用。作者通过丰......
  • Feign源码解析6:如何集成discoveryClient获取服务列表
    背景我们上一篇介绍了feign调用的整体流程,在@FeignClient没有写死url的情况下,就会生成一个支持客户端负载均衡的LoadBalancerClient。这个LoadBalancerClient可以根据服务名,去获取服务对应的实例列表,然后再用一些客户端负载均衡算法,从这堆实例列表中选择一个实例,再进行http调用即......
  • 记录--移动端 H5 Tab 如何滚动居中
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助移动端H5Tab如何滚动居中Tab在PC端、移动端应用都上很常见,不过Tab在移动端比PC端更复杂。为什么呢?移动端设备屏幕较窄,一般仅能展示4~7个Item。考虑到用户体验,UI往往要求程序员实现一个功能——......
  • 动态代理IP如何选择?
    IP地址是由IP协议所提供的一种统一的地址格式,通过为每一个网络和每一台主机分配逻辑地址的方式来屏蔽物理地址的差异。根据IP地址的分配方式,IP可以分为动态IP与静态IP两种。对于大部分用户而言,日常使用的IP地址均为动态IP地址。从代理IP的角度而言,大多数用户的需求也主要是动态代理......
  • 程序是怎么跑起来的第一章阅读
    读了这本书的第一张,让我对电脑cpu结构的更加有所了解,刚开始只知道cpu是电脑运行效果的影响和温度的显示,后来才知道原来cpu对电脑这么的重要,一个电脑的好坏也取决于它cpu的性能如何,它的内部由寄存器,控制器,运算器和时钟四个部分构成,由程序员输入的命令在电脑后台变成程序编码,然后寄......
  • 在表格中如何实现汉字转拼音?
    Excel网络函数库自2018年发布以来,我们几乎每天都在帮助用户解决各种办公自动化问题。解决的问题多了,慢慢的我们对用户的业务场景、问题来源、困难诉求有了基本认识。为了更好的帮助大家,未来,我们将对不同职业的办公效率改善问题进行归纳总结,力求给大家推荐最佳的“效率神器”。欢迎......
  • DCDC应用电路方案中MOS管如何选型?30V60V100V150V
    MOS管在DCDC恒压/恒流电路中扮演着重要的角色。DCDC恒压电路用于将一个直流电源的电压转换为另一个恒定的电压输出。DCDC恒流电路则用于将一个直流电源的电流转换为另一个恒定的电流输出。MOS管在电路中的工作原理管在这些电路中通常用作开关元件,通过调整其栅极电压来控制导通和截......