文章目录
前言
此篇文章主要收录《汇编语言 :基于x86处理机》的读书摘要和注解。
书籍信息:
中文名:汇编语言:基于x86处理机
英文名:Assembly Language for x86 Processors Seventh Edition
作者: Kip Irvine 基普 欧文
译者:贺莲 龚奕利
China Machine Press
基本概念
本书主要介绍与运行Microsoft Windows 32 位 和 64 位系统的Intel 和 AMD处理机兼容的微处理器编程。
配合本书应该使用MASM(Microsoft宏汇编器)VS大多数版本(专业,旗舰,精简)都包含MASM。(注:也可以在VS CODE 下载插件MASM/TASM 此插件调试界面为图形化界面)
此章后续主要讲二进制和相关运算,学过多次,跳过。
x86处理机架构
指令执行周期
一条指令不会神奇地一下就执行完成,CPU在执行一条机器指令时,需要经过一系列预先定义好的步骤。
这些步骤被称为 指令执行周期 instruction execution cycle
假设现在指令指针寄存器(instruction pointer register IP)已经有了想要的地址。下面就是执行步骤
CPU从被称为 指令队列 instruction queue 的 内存区域取得指令, 之后立即增加指令指针的值
CPU 对指令的二进制位模式进行译码。这种位模式可以会表示该指令有操作数(输入值)
如果有操作数,CPU就从寄存器和内存中取得操作数。有时,这步还包含了地址计算。
使用步骤三得到的操作数,CPU执行该指令。同时更新部分状态标志位,如零标志、进位标志。
如果输出操作数也是该指令的一部分,则CPU还需要存放其执行结果 (cmp 指令就没有输出操作数 只会更新标志位)
上述过程即下面三步
取值 Fetch
译码 Decode
执行 Execute
操作数即操作中输入或输出的值。如Z = X + Y.
有两个输入操作数 X,Y 一个输出操作数 Z。
可以看成函数的输入,输出。
读取内存
计算机从内存中读取一个值,需要经过以下步骤。
将想要读取的值的地址放到地址总线上
设置处理器RD(读取)引脚(改变RD的值)
等待一个时钟周期给存储器芯片进行响应
将数据从数据总线复制到目标操作数
上述每一步常常只需要一个时钟周期:基于处理器内固定速率时钟节拍的一种时间测量方法。
计算机CPU通常是用其时钟频率来描述。例如:速率位1.2Ghz 意味着时钟节拍或震荡为每秒12亿次。
(可以打开任务管理器 ctrl alt delete 查看相关信息)
但是相对于CPU寄存器相比,速度太慢了,所以用cache作为中间层次。
x86系列中的cache存储器有两种类型:一级存储器位于CPU上,二级存储器速度略慢,通过高速数据总线与CPU相连。
加载并执行程序
OS在当前磁盘目录下搜索程序的文件名。
如果找不到,则在预定目录列表(路径)下搜索文件名。
当OS无法检索到文件名时,它会发出出错信息
如果程

本文详细介绍了x86处理机架构的基本概念,包括指令执行周期、内存读取过程及程序加载执行流程等内容。此外,还深入探讨了x86处理机的不同操作模式以及寄存器的作用。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



