计算机是如何工作的
存储程序计算机工作模型
冯诺依曼体系结构
从硬件角度来看:CPU和内存,由总线连接,CPU中有一个名为IP的寄存器,总是指向内存的某一块:CS,代码段,执行命令时就取IP指向的一条指令,然后IP自加1,就指向下一条指令。
从程序员角度来看:即存储程序计算机,内存存储数据和指令,CPU就是一个for循环,总是在执行下一条指令,CPU负责解释和执行这些指令。
CPU如何识别这些指令?
定义API:程序员与计算机的接口界面
ABI:程序与CPU的接口界面,二进制指令编码,只涉及汇编指令。
IP可被CALL,RET,JMP指令修改。
X86汇编基础
CPU寄存器
通用寄存器+段寄存器+标志寄存器
加E:32位 加R:64位
汇编指令
mov指令:b,w,l,q分别代表8位,16位,32位,64位
寻址方式:寄存器寻址,立即数寻址,直接寻址,间接寻址,变址寻址
汇编指令:push,pop,call,ret
程序员不能直接修改EIP寄存器
汇编一个简单的C程序分析其汇编指令执行过程
实验过程
源代码:
int g(int x)
{
return x + 3;
}
int f(int x)
{
return g(x);
}
int main(void)
{
return f(8) + 1;
}
时间: 2024-11-20 03:15:10