程序执行的过程分析

程序执行的过程:

比如我们要执行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

时间: 2024-08-05 07:32:24

程序执行的过程分析的相关文章

ASP.NET MVC应用程序执行过程分析

ASP.NET MVC应用程序执行过程分析 2009-08-14 17:57 朱先忠 朱先忠的博客 字号:T | T ASP.NET MVC框架提供了支持Visual Studio的工程模板.本文介绍ASP.NET MVC应用程序的执行过程分析. AD:WOT2015 互联网运维与开发者大会 热销抢票 创建一个简单的ASP.NET MVC应用程序 ASP.NET MVC框架提供了支持Visual Studio的工程模板,从而让你创建支持MVC模式的Web应用程序. 这些MVC工程模板包括: “A

深入理解Java程序执行顺序

下面将从一道阿里巴巴试题详细分析Java程序执行顺序. 阿里巴巴试题 public class Test { public static int k = 0; public static Test t1 = new Test("t1"); public static Test t2 = new Test("t2"); public static int i = print("i"); public static int n = 99; publi

Spark的应用程序执行模型

今天看了一篇名为Top 3 Troubleshooting Tips to Keep You Sparking的文章,讲述了一些编写Spark程序需要注意的地方,看完之后想要总结一下. Spark执行模型,总结为官方的架构图: 本文主要讨论Driver和Worker. 我们知道,对于Spark开发的分布式应用程序,和写普通的scala程序基本类似.所以这时往往会陷入一些误区: 在Spark开发的应用程序的对象里,我给他们分成2类对象: 1.闭包内的对象:即在类似map, filter, redu

java 程序执行输出有两种简单方式

java 程序执行输出有两种简单方式: 1. System.out.println("需要输出的内容"): 该方法可参看运行一个简单的Java程序 结果图: 2. System.out.print("需要输出的内容"): 1 public class HelloWorld 2 { 3 //Java程序的入口方法,程序将从这里开始运行 4 public static void main(String[] args) 5 { 6 //向控制台打印一条语句 7 Syste

程序执行流程(粗略)

程序执行流程(粗略) 用户发出请求 前台进行js规则验证(良好的用户体验) 按照一定的规则进行数据提交 (数据没有封装的提交 和 数据封装过后的提交) 控制层进行数据的接收 1.进行数据的非空.规则验证 || 规则验证可以读取配置文件 2.处理session信息 3.进行权限的验证 || 可以使用权限拦截器或过滤器 # 分清数据来源::: 来源于用户输入(输入数据 ), 来源于系统生成(当前时间) , 默认值在业务层之中设置保证业务的可移植性 # 在调用业务之前一定要保证将业务需要的信息已经进行

控制文件读写操作次数,提高程序执行的效率(经验)

编程时经常会遇到文件读写的操作,文件的读写相对于内存操作来说,速度非常慢.因此编程时,需要控制文件读写的次数,以提高程序执行的效率.以下列代码为例,进行说明. words = ['a', 'b', 'c', 'd'] for i in range(4): for line in file('file_read.txt'): if(words[i] in line): print(line) for line in file('file_read.txt'): for i in range(4):

<01>主函数分析+创建一个新的Target+C语言程序执行流程

1.C语言的源程序的后缀:.c格式 2.C语言源程序: 1)由函数构成 2)在一个程序中,只有一个主函数(主函数由系统调用) 3)函数只有被调用的时候,才执行 4)如果没有主函数程序无法运行 5) C语言中语句结束一定要有分号 3.主函数的写法: int main(){ printf("hello world"); return 0; } 4.C语言程序的执行 1)command+r 2)点击左上角的 三角 符号 //Program ended with exit code: 0  程

应用程序执行的生命周期

main函数探究 在iOS项目中有一个main.m的文件,它是程序的入口类,代码如下: #import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 参数arg

Linux应用程序调用其他程序执行

一.system 1.作用 在Linux应用程序中调用另一个程序: 2.用法 system("/sbin/ifconfig"): 二.popen 1.作用 调用另一个程序执行,同时保存执行的结果: 2.使用示例 #include <stdio.h> int main() { FILE *pf; char buffer[4096]; pf = popen("/sbin/ifconfig", "r"); fread(buffer, siz