冯.诺依曼计算机采用二进制形式表示数据和指令:在存储程序的计算机中,数据和指令都是以二进制形式存储在存储器中的。从存储器存储的内容来看两者并无区别.都是由0和1组成的代码序列,只是各自约定的含义不同而已。
计算机在读取指令时,把从计算机读到的信息看作是指令;而在读取数据时,把从计算机读到的信息看作是操作数。数据和指令在软件编制中就已加以区分,所以正常情况下两者不会产生混乱。
为了控制指令序列的执行顺序,设置一个程序(指令)计数器PC(Program Counter),让它存放当前指令所在的存储单元的地址。
如果程序现在是顺序执行的,每取出一条指令后PC内容加l,指示下一条指令该从何处取得。如果程序将转移到某处,就将转移的目标地址送入PC,以便按新地址读取后继指令。
扩展资料:
局限性
存储器是线性编址,按顺序排列的地址访问,这是有利于存储和执行机器语言,适用于数值计算。但高级语言的存储采用的是一组有名字的变量,是按名字调用变量而非按地址访问,且高级语言中的每个操作对于任何数据类型都是通用的。
不管采用何种数据结构,多维数组、二叉树还是图,最终在存储器上都必须转换成一维的线性存储模型进行存储。这些因素都导致了机器语言和高级语言之间存在很大的语义差距,这些语义差距之间的映射大部分都要由编译程序来完成,在很大程度上增加了编译程序的工作量。