2.三个级别的语言
1)机器语言。又称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言。
2)汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上执行。
3)高级语言。高级语言(如C、C++、Java等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
由高级语言转换到汇编语言的过程叫做编译,由汇编语言转换到机器语言的过程叫做汇编,边翻译边执行的叫做解析。
机器语言是唯一可以控制cpu的语言,因为它的符号不利于人识别和书写,为了方便理解和记忆,将机器语言换一些通俗易懂的符号,这就变成了汇编语言。一般来说在在编译器中高级语言先转换为汇编在转换为机器语言,也有直接转换为机器语言的情况。
机器语言是计算机唯一可以直接执行的语言,汇编语言用助记符编写,以便记忆。而正则语言是编译原理中符合正则文法的语言。
解释程序的特点是翻译一句执行一句,边翻译边执行:由高级语言转化为汇编语言的过程称为编译,把汇编语言源程序翻译成机器语言程序的过程称为汇编
PC自动加1并指向下一条语句,初始时PC指向第一地址,然后PC把地址传递给MAR,
MAR记录的是存储体里的主存地址,MDR记录的是具体的指令,由MDR将存储体里存储的具体指令传递给IR,那么IR就得到了从存储体里得到具体指令的MDR所传递的指令,IR取得后给到CU,CU对指令的代码进行分析,IR再给MAR信息,MAR存地址;第五步是分析指令,是得到接下来要干啥,但是没说怎么干,CU分析出指令后再给IR信息,IR给MAR,给MDR,给ACC
整体就三步,即取指令,分析指令,然后执行指令;每次取完指令后PC自动+1,ACC存数,存上一次指令完后的数;接下来就是PC把地址信息给MAR,然后MAR把对应地址上的指令给MDR,然后MDR的具体指令给IR,这个指令包含两个码,一个是操作码,一个是地址码。IR进行两个操作,一个是给CU操作码,一个是给MAR地址码,给MAR地址码,MAR的地址码就是二进制大小,然后给到MDR,再给到MQ,
一开始写的程序都存储在存储体里,然后在执行的时候就按照取,分析,执行的顺序操作
取数的时候,MDR
上一条执行完后PC++,ACC是用来存每次操作完后的数据的。
主存地址的位置上是指令,指令包含两个东西,一个是操作码一个是地址码,IR将操作码给CU,将地址码给MAR;
先是PC每次在取完指令后++,并给到MAR,然后MAR将指令给MDR,MDR给IR,由此是取完了指令;然后IR是将操作码和地址码分别给CU以及MAR,CU分析操作码得到接下来要进行的操作,MAR得到操作所需要的数
MAR两次得到主存地址,第一次是得到指令,第二次是得到操作数,MDR主要就是起到一个依据主存地址得到具体指令,并把其进行传递的作用。MDR第一次得到是指令包含操作码以及地址码,传递给IR以进行分析,第二是得到具体的数据,传递给运算器里去进行运算