程序执行的过程分析--【sky原创】

简介:
程序执行的过程:
 

 
比如我们要执行3 + 2
 
程序计数器(PC) = 指令地址
指令寄存器(IR) = 正在执行的命令
累加器(AC) = 临时存储体
 
那么实际上执行了三条指令
每条指令又分为两部分:取址、执行
 
取址就是从寄存器里取一条指令放在IR寄存器
 
左上角的图,PC寄存器里面放的值是300
那么我们就从内存地址为300的位上取一条指令 1940的内容放到IR上去
 
一条指令 由操作码+操作数组成
 
1940  中的 1代表操作码,940代表操作数
 
1是从一个内存中取数据放入AC寄存器里面,即我要做什么操作
把940内存地址里面的数据0003放入AC寄存器
 
先取址,PC=300  执行时PC=301
PC会加1
 
 欢迎交流

新浪博客:http://blog.sina.com.cn/u/2049150530
csdn博客:http://blog.csdn.net/u011749143
博客园:http://www.cnblogs.com/sky-heaven/

知乎:http://www.zhihu.com/people/zhang-bing-hua









本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/4141065.html,如需转载请自行联系原作者


相关文章
|
8月前
|
Java
谈谈多线程和进程,附上例题讲解 1
谈谈多线程和进程,附上例题讲解
74 0
谈谈多线程和进程,附上例题讲解 1
|
8月前
|
Java
谈谈多线程和进程,附上例题讲解 2
谈谈多线程和进程,附上例题讲解
31 0
|
关系型数据库 MySQL PHP
Z-BlogPHP博客程序
Z-BlogPHP支持PHP 5.2 - 7.4、8.0,可运行在市面上所有的操作系统和WEB服务器之上。
79 0
Z-BlogPHP博客程序
|
缓存 Linux 索引
内核源码kfifo分析(原创)
从2.6.10开始,Linux内核提供了一个通用的环形缓存(我喜欢称为环形队列);它的头文件是<linux/kfifo.h>,kfifo.c是实现代码。 在设备驱动中环形缓存出现相当多. 网络适配器, 特别地, 常常使用环形缓存来与处理器交换数据(报文)[LDD3]。 见下面的图“LDD3中描述的队列”。 我们来看下kfifo的数据结构: struct kfifo { unsigned char *buffer; /* the buffer holding the data */ unsigned int size; /* the size of the al
557 0
|
Python 数据安全/隐私保护 搜索推荐
Python标准库(待续)
相识一场,记得顶我 集合操作 并集 >>> a = set([1,2,3]) >>> b = set([2,3,4]) >>> a.union(b) {1, 2, 3, 4} >>> a|b {1, 2, 3, 4} 交集 >>> a = set([1,2,3]) >>> b = set([2,3,4]) >>> a.
1073 0
博客搬运同步至云栖社区声明
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。.title { font-family: KaiTi; font-size: 16px; font-weight: bold; color: #777 }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs...
1206 0
|
程序员
斩荆披棘,我们走的关于程序的路
写在前面                  (图片来自网络,侵删)     忙,也不忙,时间在指缝之中溜走,光阴在暮色里消沉。繁杂的城市外景衬托坐在电脑前的人,屏幕上闪烁着的字符码愈来愈像外面的世界了——至少在那个人的眼睛里面,它们区别更小了。
1228 0