《汇编语言 :基于x86处理机》读书摘要和注解

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

前言

此篇文章主要收录《汇编语言 :基于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无法检索到文件名时,它会发出出错信息


如果程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值