计算机是如何工作的blog1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机是如何工作的blog1相关的知识,希望对你有一定的参考价值。

计算机是如何工作的

存储程序计算机工作模型

冯诺依曼体系结构

从硬件角度来看:CPU和内存,由总线连接,CPU中有一个名为IP的寄存器,总是指向内存的某一块:CS,代码段,执行命令时就取IP指向的一条指令,然后IP自加1,就指向下一条指令。

程序员角度来看:即存储程序计算机,内存存储数据和指令,CPU就是一个for循环,总是在执行下一条指令,CPU负责解释和执行这些指令。

CPU如何识别这些指令?

定义API:程序员与计算机的接口界面
ABI:程序与CPU的接口界面,二进制指令编码,只涉及汇编指令。

IP可被CALL,RET,JMP指令修改。

X86汇编基础

CPU寄存器

通用寄存器+段寄存器+标志寄存器

加E:32位 加R:64位

汇编指令

mov指令:b,w,l,q分别代表8位,16位,32位,64位

寻址方式:寄存器寻址,立即数寻址,直接寻址,间接寻址,变址寻址

汇编指令:push,pop,call,ret

程序员不能直接修改EIP寄存器

汇编一个简单的C程序分析其汇编指令执行过程

实验过程

源代码:

int g(int x)
{
  return x + 3;
}
 
int f(int x)
{
  return g(x);
}
 
int main(void)
{
  return f(8) + 1;
}
技术分享
技术分享

技术分享



以上是关于计算机是如何工作的blog1的主要内容,如果未能解决你的问题,请参考以下文章

哈斯克尔。我很困惑这个代码片段是如何工作的

append() 在这个代码片段中是如何工作的?与特定变量混淆[重复]

如何获取父目录位置

创建自己的代码片段(CodeSnippet)

10th week blog1

typescript blog1.normalize.ts