-
-
[原创] 汇编复习之一: 什么是指令?以及指令的执行过程!
-
发表于: 2008-9-10 23:17 4138
-
从计算机体系结构来看,当代计算机的设计都是以普林斯顿高级研究院的冯-诺依曼提出的冯诺依曼结构为基础,如果你不知道这个结构没关系,上百度知道一问就可以;但它的三个基本概念我们必须把握:
1:)数据和指令都存储在单一的“读写存储器”中
2:)存储器的内容通过内存寻址,而不考虑它容纳的数据是什么;
3:)指令顺序执行
还有一点,就是对内存模块的理解:
内存模块包含着一组存储单元,由连续的编号来定义其地址,每个单元都看包含一二进制数,这些二进制数,可以解释为指令,也可以解释为数据;
我们知道,计算机完成的功能是执行程序;而程序是由存于存储器中的一系列指令组成的,这些指令最后由CPU---中央处理器执行程序中指定的功能来完成;也就是说,程序实际上是许多的步骤组成,每一步执行对某些数据的算术逻辑操作,每一步的执行都需要一组控制信号,我们为每一组控制信号提供一个唯一的二进制代码,这些代码就是汇编指令(助记符) 的原型;
一条指令是怎么执行的呢;既然要问是怎么执行的,也就是问它的执行过程;
一条指令的执行过程称为指令周期,而指令周期分为取指周期和执行周期;即,CPU每次从内存中读取指令,然后执行指令;程序的执行就是重复取指和执行指令的过程;
一般来说: 一条指令的执行通常有如下几个状态
1:)指令地址计算
2:)读取指令 :将指令从内存读到CPU中
3:)指令译码操作 :分析指令,决定执行何种操作及其所用的操作数
4:)操作数地址计算 :各种寻址方式,通过偏移地址最后找到物理地址
5:)取操作数 :从存储器或I/o中读取操作数
6:)数据操作 :完成指令说给出的操作
7:)存储操作数 :将结果写入存储器或输出到I/O
也有些特殊的指令可能不按这种顺序执行,但也只是这几种状态的转换;
写这的目的主要是给一些非计算机专业而又学汇编的朋友一些帮助,同时自己最近在复习计算机组成与结构,也当是学习笔记吧! 如有不是只出,希望大家指出;我会按我复习路线就是在复习完组成与结构后在把汇编的那些指令用法总结出来,看能不能对想学汇编而又感觉入门困难的人有所帮助;由于时间有限,今天就到这吧,每天努力一点点,每天进步一点点; 祝大家晚安;
Assembly language is much easier than most high-level programming languages. It is considerably easier than C++, and it is possible to master Assembly within several months. The key is starting right, looking ahead with confidence, and proceeding in the right direction instead of blindly wandering in the dark.
A hacker that hasn't mastered Assembly language is not a hacker. Such a person is like an oarsman without an oar. It is impossible to achieve serious goals in the field of hacking having mastered only high-level programming languages.
shellcodei Programming Uncovered ————by Kris Kaspersky
1:)数据和指令都存储在单一的“读写存储器”中
2:)存储器的内容通过内存寻址,而不考虑它容纳的数据是什么;
3:)指令顺序执行
还有一点,就是对内存模块的理解:
内存模块包含着一组存储单元,由连续的编号来定义其地址,每个单元都看包含一二进制数,这些二进制数,可以解释为指令,也可以解释为数据;
我们知道,计算机完成的功能是执行程序;而程序是由存于存储器中的一系列指令组成的,这些指令最后由CPU---中央处理器执行程序中指定的功能来完成;也就是说,程序实际上是许多的步骤组成,每一步执行对某些数据的算术逻辑操作,每一步的执行都需要一组控制信号,我们为每一组控制信号提供一个唯一的二进制代码,这些代码就是汇编指令(助记符) 的原型;
一条指令是怎么执行的呢;既然要问是怎么执行的,也就是问它的执行过程;
一条指令的执行过程称为指令周期,而指令周期分为取指周期和执行周期;即,CPU每次从内存中读取指令,然后执行指令;程序的执行就是重复取指和执行指令的过程;
一般来说: 一条指令的执行通常有如下几个状态
1:)指令地址计算
2:)读取指令 :将指令从内存读到CPU中
3:)指令译码操作 :分析指令,决定执行何种操作及其所用的操作数
4:)操作数地址计算 :各种寻址方式,通过偏移地址最后找到物理地址
5:)取操作数 :从存储器或I/o中读取操作数
6:)数据操作 :完成指令说给出的操作
7:)存储操作数 :将结果写入存储器或输出到I/O
也有些特殊的指令可能不按这种顺序执行,但也只是这几种状态的转换;
写这的目的主要是给一些非计算机专业而又学汇编的朋友一些帮助,同时自己最近在复习计算机组成与结构,也当是学习笔记吧! 如有不是只出,希望大家指出;我会按我复习路线就是在复习完组成与结构后在把汇编的那些指令用法总结出来,看能不能对想学汇编而又感觉入门困难的人有所帮助;由于时间有限,今天就到这吧,每天努力一点点,每天进步一点点; 祝大家晚安;
Assembly language is much easier than most high-level programming languages. It is considerably easier than C++, and it is possible to master Assembly within several months. The key is starting right, looking ahead with confidence, and proceeding in the right direction instead of blindly wandering in the dark.
A hacker that hasn't mastered Assembly language is not a hacker. Such a person is like an oarsman without an oar. It is impossible to achieve serious goals in the field of hacking having mastered only high-level programming languages.
shellcodei Programming Uncovered ————by Kris Kaspersky
赞赏
他的文章
- [原创]导入表静态特征免杀 8386
- [翻译]sulley 网络协议Fuzzing 测试文档 15983
- [原创][讨论]Tx 第三题的两个正向函数 8955
- [原创][原创]第二题答案 3610
- [原创]腾讯安全第一题 3718
赞赏
雪币:
留言: