星空网 > 软件开发 > 操作系统

冯诺依曼体系结构

1.冯诺依曼体系结构(存储程序计算机)

1.1 解释

  • 从硬件角度可以抽象为一下模型:

冯诺依曼体系结构images/loading.gif' data-original="http://images2015.cnblogs.com/blog/734147/201604/734147-20160412234558395-1109644493.png" width="244" height="170" />

CPU与内存通过总线连接,CPU中有很多寄存器(总是指向内存的某一块区域),如IP(Instruction Pointer)。假如指向CS(Code Segment,代码段),CPU从IP指向的内存的地址,取指令执行,执行过后IP自加1,取下一条指令,重复上述步骤。

  • 从程序员的角度可以抽象为一下模型:

冯诺依曼体系结构

CPU不断执行next instruction,从内存取指令不断执行。

内存保存数据和指令,CPU负责解释和执行指令。

1.2 API和ABI

cpu识别什么指令,怎么定义?

API:程序员与计算机的接口界面

ABI:程序与CPU的接口界面

2.×86寄存器

2.1 通用寄存器

冯诺依曼体系结构

2.2 段寄存器

冯诺依曼体系结构

CPU在实际取指令是根据cs:eip来确定一个指令

3.×86汇编指令

指令

含义

模式/模型

movl %eax,%edx

edx=eax

register mode,以%开头的寄存器标示符

movl $0x123,%edx

edx=0x12

immediate,立即数以$开头的数值

movl 0x123(没有$符表示地址),%edx

edx=*(int32_t*)0x123

direct,直接访问一个指定的内存地址的数据

movl (%ebx)(ebx寄存器存的值——内存地址,加括号表示内存地址存的数据放在ebx),%edx

edx=*(int32_t*)ebx

indirect,将寄存器的值作为一个内存地址来范围内存

movl 4(%ebx),%edx

edx=*(int32_t*)(ebx+4)

displaced,在间接寻址时改变寄存器的值

pushl %eax

subl $4,%esp
movl %eax,(%esp)

冯诺依曼体系结构

popl %eax

movl(%esp),%eax
addl $4,%esp

call 0x12345(调用0x12345地址)

pushl %eip(*)(当前的eip压栈)
movl $0x12345,%eip(*)(立即数放在eip)

ret

popl %eip(*)

enter

pushl %ebp
movl %esp,%ebp

leave

movl %ebp,%esp
popl %ebp

b,w,l,q分别代表8位,16位,32位,64位

eip指向内存的指令,自加一(一条指令),*代表这些指令不能被程序员直接使用,程序不能直接修改eip寄存器

4.汇编代码分析

#include <stdio.h>

int g(int x)

{

return x + 3;

}

 

int f(int x)

{

return g(x);

}

 

int main(void)

{

return f(8) + 1;

}

gcc -S -o main.s main.c -m32,对应的汇编代码

g:

pushl %ebp

movl %esp, %ebp

movl 8(%ebp), %eax

addl $3, %eax

popl %ebp

ret

f:

pushl %ebp

movl %esp, %ebp

subl $4, %esp

movl 8(%ebp), %eax

movl %eax, (%esp)

call g

leave

ret

main:

pushl %ebp

movl %esp, %ebp

subl $4, %esp

movl $8, (%esp)

call f

addl $1, %eax

leave

ret

动画演示:

冯诺依曼体系结构




原标题:冯诺依曼体系结构

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

朱斌凌:https://www.goluckyvip.com/tag/49464.html
朱吉郎:https://www.goluckyvip.com/tag/49465.html
朱骏超:https://www.goluckyvip.com/tag/49466.html
朱远刚:https://www.goluckyvip.com/tag/49467.html
珠宝电商:https://www.goluckyvip.com/tag/49468.html
珠海电商培训:https://www.goluckyvip.com/tag/49469.html
我要旅游去图片欣赏 我要去旅行图片:https://www.vstour.cn/a/403236.html
金刀峡风景区从哪个门进去 金刀峡怎么去:https://www.vstour.cn/a/403237.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流