什么是cpu(cpu的工作原理是什么)
摘要
- 搭建开发测试环境程序分析地址、vstart
- CPU工作原理
CPU工作原理
1. 搭建开发测试环境(MacOS)
1.1 安装一些必要工具
#安装汇编编译器brewinstallnasm#安装虚拟机brewinstallqemu
1.2 测试代码
该代码的功能是在屏幕上打印"hello os",这里不再过多解释这个代码,这段代码主要是为了后文介绍几个基础概念。
;主引导程序SECTION MBR vstart=0x7c00 mov ax,cs mov ds,ax mov es,ax mov ss,ax mov fs,ax mov sp,0x7c00 mov ax,0x600 mov bx,0x700 mov cx,0 mov dx,0x184f int 0x10 mov ah,3 mov bh,0 int 0x10 mov ax,message mov bp,ax mov cx,8 mov ax,0x1301 mov bx,0x2 int 0x10 jmp $ message db "hello os" times 510-($-$$) db 0 db 0x55,0xaa
1.3 运行程序
#编译汇编程序nasm-oprint.binprint.S#创建虚拟机镜像qemu-imgcreate-frawvm1.raw1G#将编译后的汇编程序写入第一个扇区ddif=print.binof=vm1.rawbs=512count=1conv=notrunc#启动虚拟机qemu-system-x86_64vm1.raw
启动以后效果如下:
2. 程序分析
如何加载操作系统 已经讲到了如何加载我们的操作系统,在加载操作系统是我们提到了主引导程序,上述代码其实就是相当于MBR程序(但这里并不是去引导加载操作系统,只是在屏幕上打印一句话)。
BIOS在完成自检等初始化操作以后,会跳转到固定0x7c00处执行主引导程序,因此我们的代码使用vstart=0x7c00来表明我的代码会被初始化在内存的0x7c00处。
因此在我们启动虚拟机后,BIOS完成操作以后会跳转到我们的程序,CPU然后根据我们程序的指令执行,最终在屏幕打印了hello os。
3. 地址、vstart
地址是源码文件中各符号偏移文件开头的距离,一般一个文件的默认开始地址为0。
我们的应用程序使用vstart以后,应用程序便被赋予了一个虚拟的起始地址,不管是虚拟地址还是真实地址,只要将这个地址交给了地址总线,地址总线便会去 查找该地址处的内容。因此如果在开发中使用了vstart,必须要保证程序会出现在物理内存的该地址处。
4. CPU工作原理
CPU的工作模式分为实模式和保护模式,实模式的最大寻址空间为1M。关于实模式和保护模式在后续我们会讲解。在介绍这两种模式之前,我们还是先讲CPU的工作原理。
CPU的唯一任务就是执行指令,在执行指令的过程中,需要CPU的是三个部件共同协作完成:
控制单元运算单元存储单元控制单元是CPU的核心,只有通过控制单元CPU才能知道自己下一步需要做啥,控制单元大致由三部分组成:
指令寄存器IR指令译码器ID操作控制器OC当我们的应用程序(也就是指令)被加载至内存以后,指令指针寄存器IP指向内存中下一条待执行的指令,该指令被送上地址总线以后,控制单元会获取指令 然后将其加载到指令寄存器IR中,此时的指令只是一串数字和字母,CPU如果要知道其真正的执行含义必须借助指令译码器ID对这串数字和字母按照 指令的格式进行解码分析。IA32(x86)指令格式如下:
前缀在指令格式中是可选模块,操作码对着我们应用程序中的mov,jmp等,寻址方式又分为基址寻址、变址寻址等(后续细讲),操作数类型记录的是 使用的寄存器。立即数和偏移量分别对应我们在寻址过程中用到的是立即数还是偏移量。
存储单元是指CPU中的L1、L2缓存和寄存器,用于存储指令中用到的数据。
在指令和数据都完善以后,控制单元中的操作控制器会给相关部件发送信号开始执行。
感谢阅读,码字不易,如果觉得还可以,顺手“” “点赞”,这对我是最大的鼓励!!
- 1bat的大数据(BAT的大数据来源)
- 2三星s8屏幕上端2(三星s8屏幕上端2个按键)
- 3三星屏幕坏了如何导出(三星屏幕摔坏了如何导出数据么)
- 4红米3x怎么关闭自动更新(红米k40s怎么关闭自动更新)
- 5微信上防止app自动下载软件怎么办(微信上防止app自动下载软件怎么办啊)
- 6押镖多少钱(押镖一个月有多少储备金)
- 7瑞星个人防火墙胡功能(瑞星个人防火墙协议类型有哪些)
- 8cf现在等级是多少(cf等级2020最新)
- 9老滑头多少条鱼(钓鱼老滑头有什么用)
- 10WPS自动调整语法(wps如何修改语法)
- 11dell控制面板防火墙(dell的防火墙怎么关闭)
- 12丑女技能升多少(丑女技能需要满级吗)
- 13智能家居系统怎么样(智能家居系统好吗)
- 14戴尔屏幕(戴尔屏幕闪烁)
- 15y85屏幕信息(vivoy85息屏显示时间怎么设置)
- 16魅蓝note3屏幕出现方格(魅蓝note屏幕竖条纹)
- 17v8手指按屏幕(触屏手指)
- 18金为液晶广告机(液晶广告机lb420)
- 19三星显示器怎么校色(三星显示器 调色)
- 20hkc显示器dvi音频(hkc显示器有音响么)
- 21康佳液晶智能电视机(康佳液晶智能电视机怎么样)
- 22做液晶画板电脑(做液晶画板电脑怎么操作)
- 23液晶屏极化现象原理(液晶屏极化现象原理是什么)
- 24企业网络安全防火墙(企业网络防护)
- 256splus黑屏屏幕不亮(苹果6s plus屏幕突然黑屏)
- 26充电导致屏幕失灵(充电导致屏幕失灵怎么办)
- 27超极本屏幕旋转(笔记本电脑屏幕旋转,怎么转过来?)
- 28igmp防火墙(防火墙配置ipv6)
- 29荣耀王者多少经验(王者荣耀经验多少一级)
- 30lol老将还剩多少(qg老将)