程序是什么
程序是指令和数据的结合体。硬盘上保存的程序只有被复制到内存后才能运行。
内存、CPU和寄存器
内存地址是用来指定和标记内存中保存的命令和数据
CPU和内存是由许多晶体管组成的电子部件,常称为IC,从功能上看,CPU内部由寄存器、控制器、运算器和时钟构成,各部分由电信号进行沟通
寄存器用来暂存指令、数据等对象
控制器负责把内存上的指令,数据等读入寄存器,并根据指令的执行结果来控制整个计算机
运算器负责运算从内存读入寄存器的数据
时钟负责发出CPU开始计时的时钟信号
程序与寄存器
程序是把寄存器作为对象来描述的。
将用于运算的数值放在累加寄存器中存储,
而表示内存地址的数值则放在基址寄存器和变址寄存器中存储。
CPU每执行一个指令,程序计数器的值就会加1,程序计数器决定了程序的流程
标志寄存器用来保存当前累加寄存器的运算结果-正负零(也负责存放溢出和奇偶校验的结果)
函数调用处理是通过把程序计数器的值设定为函数的存储地址来实现。
函数调用使用的是call指令,而不是跳转指令。在将函数的入口地址设定为程序计数器之前,call指令会把调用函数后要执行的指令地址存储在名为栈的主存中,函数处理完毕后,再通过函数的出口来执行return命令。return命令的功能是把保存在栈中的地址设定到程序计数器中。
在编译高级程序语言的程序后,函数调用的处理会转换为call指令,函数结束的处理则会转换为return指令。
通过基址寄存器和变址寄存器,我们可以对主内存中的特定内存区域进行划分,实现类似数组的操作。变址寄存器的值相当于程序中数组的索引功能。