认识---控制器CPU

控制器 组成由三部分: 运算器、控制器、寄存器

控制器: 根据指令完成操作, 发出各种微操作命令序列,用以控制所有被控对象,完成指令执行

运算器: 算数、逻辑运算。

寄存器:一种有限存储容量的高速存储部件;可以用来暂存指令/数据/地址,既可以传达控制器的命令给运算器,又可以帮运算器记录待处理/已处理完的数据。

        程序计数寄存器(Program Counter Register, PC): 又称“指令地址寄存器”,存放下一条要执行指令的内存地址

        指令寄存器(Instruction Register, IR): 存放当前正在执行的一条指令,存放的内容来自于数据寄存器(DR)。

        数据寄存器(DR):作为CPU和主存、外设之间信息传输的中转站,用以弥补CPU和主存、外设之间操作速度上的差异。

        

程序,其实是 一条条 指令。

cpu来执行指令

例子: a = 1 + 2

        cpu并不认识a=1+2字符串, 这样写 只为了 程序员认识。

        想要程序跑起来,必须将程序 翻译会 汇编语言, 过程叫做--汇编代码

        针对汇编代码, 还需将其 翻译为 机器码。  机器码由0 1 组成,机器码是cpu真正认识的东西

        cpu执行程序的过程:

                编译器 通过分析代码, 发现1和2是 数据,于是程序进行时, 内存会有专门的数据段来存放这些数据,如图

                        ·数据1被存放到0x100位置

                        ·数据2被存放到0x104位置

                        ·32位的cpu所以一条指令占32位大小,所以 每条指令 间隔4个字节

                        ·数据大小 根据程序中 定义的变量的类型。比如int 4字节 char 1字节

                        ·编译器将a=1+2翻译为4条指令,存放之正文段(代码段)。 4条指令存放在0x200~0x20c区域

                                指令1,load指令 将0x100地址中的 数据1 装入到寄存器R0

                                指令2, load指令 将0x104地址中的 数据2 装入寄存器R1

                                指令3, add指令 将寄存器R0 R1的数据相加, 并把结果 存放至 寄存器R2

                                指令3, store指令 将寄存器R2中的数据 存回 数据段中的 0x108地址中, 这就是变量a的地址

                        ·编译完成后,执行程序的时候,程序计数器会被设置为0x200地址,然后依次执行这四条指令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值