程序是指示计算机每一步动作的一组指令
程序由指令和数据构成
机器语言是cpu可以直接识别并使用的语言
正在运行的程序储存在存中,内存中,用来表示命令和数据存储位置的数值叫做内存地址。
cpu负责程序的解释和运行
Cpu是具有各种功能的寄存器的集合体
cpU内部由寄存器、控制器、运算器、时钟构成;
寄存器:可以用来暂存指令、数据等处理对象,可以将其看成内存的一种。一个cpu有20~100个寄存器。
控制器负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机。
运算器负责运算从内存读入寄存器的数据。
时钟负责发出cpu开始计时的时钟信号。时钟信号的频率越高,cpu运行速度越快。
通常说内存指的是计算机的主存储器。主存通过控制芯片等与cpu相连,负责存储指令和数据。
程序是把寄存器作为对象来描述的。
程序计数器、累加寄存器、标志寄存器、指令寄存器、栈寄存器只有一个,其他寄存器一般有多个。
地址0100是程序运行的开始位置。Windows等操作系统把程序从硬盘复制到内存后,会将程序计数器设定为0100,然后程序便开始运行。Cpu每执行一个指令,程序计数器的值就会自动+1.,例如,cpu执行0100地址的指令后,程序计数器就变成0101
程序的流程有三种:顺序执行、条件分支、循环。
顺序执行是按照地址内容的顺序执行指令;(每执行一个指令程序计数器自动加一)
条件分支是根据条件执行任意地址的指令;
循环是重复执行同一地址的指令。
条件分支和循环,机器语言的指令就可以将程序计数器的值设定为任意地址( +1).。。。
条件分支和循环中使用的跳转指令,会参照当前执行的运算结果判断是否跳转
无论当前累加寄存器的运算结果是负数还是0或者正数,标志寄存器都会将其保存。
标志寄存器有32位cpu;第一个字节位为1时,表示正数
函数调用处理也是通过把程序计数器的值设定成函数的存储地址实现的。
函数的调用需要在完成函数内部的处理后,处理流程再返回到函数调用点(函数调用指令的下一个地址)
函数调用使用的是call指令,不是跳转指令。在将函数的入口地址设定到程序计数器之前,call指令会调用函数后要执行的指令地址存储在栈的主存内。函数处理完,再通过函数的出口执行return命令。
Return命令的功能是把保存在栈中的地址设定到程序计数器
十六进制数将计算机内存上的00000000~FFFFFFFF的地址划分出来。
在此范围只要有一个32位的寄存器,即可查出所有内存地址;两个寄存器更方便,现将地址存入基址寄存器,然后使变址寄存器变化
数据转送指令:寄存器与内存、内存与内存、寄存器和外围设备之间的数据读写操作;
运算指令:用累加寄存器执行算术运算、逻辑运算、比较运算和移位运算;
跳转指令:实现条件分支、循环、强制跳转等;
Call/return指令:函数的调用、返回调用前的地址