软件调试笔记3 - CPU基础

本文介绍了CPU的基本工作原理,包括其如何从内存读取指令并执行。深入探讨了RISC与CISC两种不同类型的指令集架构特点,以及常见的寻址方式。此外,还解释了CPU的操作模式,并详细说明了分页机制Paging的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CPU角色

CPU做的事情就是从内存中读取指令,然后解码跟执行。指令是CPU理解并执行的操作,是CPU能“看懂”的唯一语言。


RISC & CISC

CPU根据指令集的特征分为RISC(Reduced Instruction Set computer)精简指令集计算机跟CISC(complex instruction set computer)复杂指令集计算机。

大多数RISC的指令是等长度的,通常是4个字节,最短的是1个字节,长的甚至几十个字节。定长的指令有利于解码跟优化,缺点是占用的空间比较大,因为有些指令没必要4字节。但是定长的指令有利于实现反汇编跟代码断点。


RISC的寻址方式比CISC少了很多种,但比CISC处理器的通用寄存器数量多。寄存器位于CPU内部,CPU可以直接使用,比访问内存效率更高。RISC的指令数量也比较少。

RISC有足够多的寄存器来传递函数的参数,而CISC中最多只能将两个参数用寄存器传递,其他都用栈来传递。


寻址方式

立即寻址immediate addressing:操作数直接跟在操作码后面,作为指令的一部分放在代码段里。比如MOV AL, 5

寄存器寻址register addressing:操作数被预先放在寄存器中,指令中指定寄存器号,比如MOV AX, BX

直接寻址direct addressing:操作数的有效地址即effective address, ,EA, 直接作为指令的一部分跟在操作码后面,比如MOV AX, 【402128H】。

寄存器间接寻址register indirect addressing:操作数的地址被预先放在一个或多个寄存器中,比如ADD AX,[BX]。为处理表格或者字符串等带来了很大方便,比如可以把字符串的起始地址放入一个基地址寄存器中,然后用一个变址寄存器指向各个元素。


CPU的操作模式

保护模式:具有强大的虚拟内存支持和完善的任务保护机制。保护多任务多线程环境中的各个任务的安全。分为任务间模式跟任务内模式,任务间保护靠内存映射机制实现,任务内的保护靠特权级别检查实现。

实地址模式:简称实模式,提供了一种简单的任务环境,可以直接访问物理内存跟IO,操作系统跟应用软件运行在同一个内存空间和同一个优先级,因此操作系统的数据很容易被应用软件破坏。DOS操作系统运行在实模式下,CPU在上电或者复位后总是处于实模式。

虚拟8086模式:保护模式下用来执行8086任务的准模式。可以把8086程序当作保护模式的一项任务来执行。

系统管理模式:供系统固件执行电源管理,安全检查或与平台相关的特殊任务。

IA-32e模式:支持INTEL64的64位工作模式。


标志寄存器EFlags的VM标志用来控制处理器是在虚拟8086模式还是普通保护模式。


寄存器

寄存器是位于CPU内部的高速存储单元,用来临时存放计算过程中用到的操作数,结果,程序指针或其他信息。通常所说的CPU位数,比如32位CPU,64位CPU就是CPU中通用寄存器的位数。


分页机制Paging

操作系统将线性地址空间划分成固定大小的页面,比如4KB, 2MB或者4MB等。每个页面可以被映射到物理内存或者外部存储器上的虚拟内存文件中。当程序中的指令访问某一地址时,CPU首先会根据段寄存器的内容将虚拟地址转化成线性地址。当程序执行时,是CPU内部的内存管理单元Memory Management Unit (MMU)负责将线性地址翻译成物理地址,为了减少翻译地址时访问页表和页目录所造成的开销,CPU会把最近使用的页表和页目录表项存储在CPU内的专用高速缓存中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值