汇编学习笔记 第二章
来源:互联网 发布:北津学院教务网络管 编辑:程序博客网 时间:2024/06/07 00:17
2.1 80x86的基本结构
硬件系统由中央处理器(CPU),存储器(Memory),输入输出设备(Input/Output)组成,由系统总线连接。
中央处理器
内部组成
运算器、控制器、寄存器主要功能
执行存放在内存中的指令;
运算器用来执行算术运算,逻辑运算和数据传送等;
控制器用来从内存中取出指令,分析指令操作码,完成操作数的存取和发出相应的控制命令等。
总线结构
共有三条总线:数据总线(DB),地址总线(AB),控制总线(CB)- 数据总线:只有8位,16位,32位,64位 4种类型
- 地址总线:8086/8088地址总线为20根,有1M的可访问地址
- 控制总线:传送控制信息
存储器
- 最小存储单元为字节
- 8086/8088只能工作在实模式
2.2 寄存器
通用寄存器
共有8个8位通用寄存器,8个16位通用寄存器,8个32位通用寄存器。AX
- 隐式使用
- 算术运算累加器
- 乘法中的乘数和乘积
- 除法中的被除数,商和余数(8位除法)
- 串操作中的操作数
- 显示使用
- 功能号(AH)
- 隐式使用
BX
- 显示使用
- 寻址时的基址寄存器
- 显示使用
CX
- 隐式使用
- 循环计数器
- 显示使用
- 移位操作计数器
- 串操作计数器
- 隐式使用
DX
- 隐式操作
- 乘法中的乘积高位(16位)
- 被除数高位(32)或余数(16位)
- I/O指令间接寻址时的端口地址寄存器
- 隐式操作
SP
- 隐式操作
- 堆栈指针
- 隐式操作
BP
- 显示操作
- 堆栈操作时的基址寄存器
- 显示操作
SI
- 隐式操作
- 串操作时的变址
- 显示操作
- 间接寻址时的变址
- 隐式操作
DI
- 隐式操作
- 串操作时的目的变址寄存器
- 显示操作
- 间接寻址时用于地址寄存器和变址寄存器
- 隐式操作
注:显示功能一般指改寄存器的特有功能,但需要显示调用(个人理解可能有不准确的地方)
控制寄存器
IP
- 功能:存放下一条执行的指令的偏移地址
- 特点:一般不人为修改
CF(进位标志)
- 说明:最高位是否产生进位或借位,则CF=1
PF(奇偶标志)
- 说明:若运算结果最低8位中,含1的个数(二进制)为偶数,PF=1
AF(辅助进位标志)
- 说明:运算结果最低4位产生进位或借位,则AF=1
- 实际用途:BCD码中判断是否进行十进制调整
SF (符号标志)
- 说明:运算结果为负则SF=1
ZF(0标志)
- 说明:运算结果为0则ZF=1
OF(溢出标志)
- 说明:有溢出则OF=1
- 实际用途:检测带符号数二进制加减法
DF(方向标志)
- 说明:专用于串操作中地址变化方式,DF=1表示地址递减
- 实际用途:串操作
IF(中断标志)
- 允许中断,则ZF=1
TF(单步跟踪标志)
- CUP进入单步工作方式,则TF=1
注:个人认为,考试多半只涉及CF、ZF、SF、OF、DF,上述未写的其他控制标志过于复杂,懒得记忆。
段寄存器
考试内容一般只涉及CS、DS、SS,可能涉及ES(宏定义与宏操作)。
2.3 内存组织结构
对于字地址:低字节在前,高字节在后
双字存储时,例如DX:AX,DX存放高字,AX存放低字
堆栈
是在内存中划分出的一段区域,一端是固定的,另一端是浮动的
固定端由SS决定
浮动端由SP或ESP决定,空栈时SP指向栈底,随入栈数据类型和个数的变化,SP/ESP递减
2.4 工作模式
- 实模式
物理地址的寻址方式(同一物理地址可有多种逻辑地址) 保护模式
前提要求:80286以上处理器
访问方式:逻辑地址表示物理地址,逻辑地址由选择符(存放于段寄存器)和偏移地址两部分组成。
选择符不能直接表示段基地址,需要操作系统协调。
保护模式下的段地址是间接得到的,其偏移地址可达32位,最大段长可达4G
选择符的作用是映射选择描述符表中对应的描述符,从而获取描述段的基地址、段界限、访问权限和附加字段。
- 汇编学习笔记 第二章
- 汇编第二章学习
- 【汇编】学习笔记——第二篇
- 【汇编学习】第二章:程序起步
- 【汇编学习】汇编语言读书笔记(第二章)
- 学习笔记 第二章
- 学习笔记 第二章
- 汇编学习笔记 第三章
- 汇编学习笔记 第四章
- 汇编学习笔记 第五章
- 汇编学习笔记 第六章
- 汇编学习笔记 第七章
- 汇编学习笔记 第三章
- 汇编读书笔记 -- 第二章
- Win32学习笔记 第二章
- c++学习笔记第二章
- asp学习笔记第二章
- 第一章,第二章学习笔记
- 第一次发
- SQL SERVER
- Java 初始化二叉树,先序,中序,后序遍历,深度
- localStorage使用总结
- Selenium2(WebDriver)总结(一)---启动浏览器、设置profile&加载插件
- 汇编学习笔记 第二章
- memcache缓冲池存取数据
- oracle创建scott用户下表的sql语句
- Html静态模拟登陆过程中遇到的问题
- extjs-布局 (在column布局中使用fieldset 和 在fieldset中使用column布局)
- FFmpeg 读取视频流并保存为BMP
- 互联网时代架构师的职责与思考
- 机器学习中的SVD
- 实现MFC的两种类型文件对话框