ICS汇编学习笔记——8086中的寄存器
程序执行两大部件:总线接口单元(BIU) 执行单元(EU)
指令和数据都在内存中
BIU与EU是并行执行的
BIU负责取指令和存取操作数
EU负责译码和指令的执行8086的8个16位通用寄存器
AX, BX, CX, DX
SI, DI, BP, SP4个数据寄存器
AX——累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;
BX——基址寄存器,常用做存放存储器地址;数组首地址。
CX——计数器,作为循环和串操作等指令中的隐含计数器;
DX——数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。2个变址寄存器
SI是源变址寄存器
DI是目的变址寄存器
串操作类指令中,SI和DI具有特别的功能2个指针寄存器
SP为堆栈指针寄存器,指示栈顶的偏移地址
SP不能再用于其他目的,具有专用目的
BP为基址指针寄存器,表示数据在堆栈段中的基地址
SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址指令指针IP
指令指针寄存器IP,指示代码段中指令的偏移地址(相当于程序计数器PC)
它与代码段寄存器CS联用,确定下一条指令的物理地址
计算机通过CS : IP寄存器来控制指令序列的执行流程
IP寄存器是一个专用寄存器(区别于通用寄存器)
EIP始终存放下一条要被CPU执行的指令的地址。
有些机器指令可以修改EIP,使程序分支转移到新的地址执行。例如:JMP, RET标志寄存器
进位标志CF(Carry Flag): 当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。
零标志ZF(Zero Flag): 若运算结果为0,则ZF = 1;否则ZF = 0
符号标志SF(Sign Flag):运算结果最高位为1,则SF = 1;否则SF = 0
奇偶标志PF(Parity Flag):当运算结果最低字节中"1"的个数为零或偶数时,PF = 1;否则PF = 0
溢出标志OF(Overflow Flag):若算术运算的结果有溢出,则OF=1;否则 OF=0
注:"溢出标志"在有符号运算中有意义,"进位"在无符号运算中有意义
辅助进位标志AF(Auxiliary Carry Flag):运算时D3位(低半字节)有进位或借位时,AF = 1;否则AF = 0。用户一般不必关心。
方向标志DF(Direction Flag):用于串操作指令中,控制地址的变化方向:设置DF=0,存储器地址自动增加;设置DF=1,存储器地址自动减少。(CLD指令复位方向标志:DF=0;STD指令置位方向标志:DF=1)
中断允许标志IF(Interrupt-enable Flag):用于控制外部可屏蔽中断是否可以被处理器响应:设置IF=1,则允许中断;设置IF=0,则禁止中断。(CLI指令复位中断标志:IF=0;STI指令置位中断标志:IF=1)
陷阱标志TF(Trap Flag):用于控制处理器进入单步操作方式:设置TF=0,处理器正常工作;设置TF=1,处理器单步执行指令。4个段寄存器
CS(代码段)指明代码段的起始地址
SS(堆栈段)指明堆栈段的起始地址
DS(数据段)指明数据段的起始地址
ES(附加段)指明附加段的起始地址
ICS汇编学习笔记——8086中的寄存器相关推荐
- ICS汇编学习笔记——8086的指令系统
8086/8088的指令系统包含了六种类型,其中数据传送指令14条,算术运算指令20条,逻辑运算指令13条,串操作指令10条,控制转移指令28条,处理器控制指令12条. 1)数据传送类指令(14条) ...
- ICS汇编学习笔记——操作数寻址方式
指令由操作码和操作数组成 操作数寻址方式有三大种: 立即数寻址:MOV EAX,12345678H 寄存器寻址:MOV EAX,EBX 存储器寻址:MOV EAX,DS:[20000H] 主要来看存储 ...
- 汇编学习笔记——汇编指令
目录 汇编指令 nop指令 mov.add.sub指令 adc.sbb指令 and.or指令 移位指令 逻辑左/右移指令 循环左/右移指令 算术左/右移指令 带进位循环左/右移指令 inc指令 pus ...
- 汇编学习笔记——伪指令
目录 伪指令 段定义 结束标记 段关联标记 数据定义 标号 offset指令 seg指令 地址标号 数据标号 代码分段 程序标识 多文件系统 字符输入 重复定义 注释 重复汇编伪指令 伪指令汇总 伪指 ...
- 汇编学习笔记:对抗反汇编实验2019092801
汇编学习笔记:对抗反汇编实验2019092801 实验描述 实验环境 实验过程 实验结论 实验描述 使用相连的jz和jnz指令跳转到紧接着jnz指令的call指令的第二个字节.call指令实际上无效. ...
- r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数
在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...
- c#学习笔记05-treeview中添加图标
创建树目录前面在学习笔记03中已经提到过 即树目录数据从XML文档中获取 添加图标主要用到ImageList控件 1.ImageList控件 在树目录对应存在的窗体中添加此控件 添加图标: 2.tre ...
- 20190328学习笔记 - JSP 中的 tag 文件
20190328学习笔记 - JSP 中的 tag 文件 对于tag 文件 1. 引入 tag 文件 2. 在/WEB-INF/tags/sys 下,新增一个gridselect.tag文件 3. 在 ...
- 8086汇编学习之[BX],CX寄存器与loop指令,ES寄存器等
同类学习笔记总结: (一).8086汇编学习之基础知识.通用寄存器.CS/IP寄存器与Debug的使用 (二).8086汇编学习之DS寄存器.SS/SP寄存器 一.汇编程序的基本格式: 1.基本格式与 ...
最新文章
- Caffe源码中Pooling Layer文件分析
- 美团分布式ID生成服务LeafCode
- Windows8 开发者预览版发布(微软官方原版)
- mysql 必须掌握的工具pt-query-digest安装
- 《中国人工智能学会通讯》——10.22 能源互联网时代
- [UE4]修改相机裁剪距离
- SpringSecurity案例之认证服务搭建
- sqoop动态分区导入mysql,使用sqoop import从mysql往hive含分区表中导入数据的一些注意事项...
- python使用sqlalchemy判断数据库是否包含某张表
- 样条曲面_用SolidWorks曲面制作一个:台灯底座造型
- Bailian4019 黑色星期五【模拟】
- pyspark分类算法之梯度提升决策树分类器模型GBDT实践【gradientBoostedTreeClassifier】
- Android之线性布局的4个重要参数
- 基于C#的安全聊天工具设计
- dux修改index.php,DUX主题修改首页轮播图为通栏模式
- c语言变量 集体备课,(最新整理)数学集体备课活动记录2
- C#中实现两个程序的通信
- [易飞]录入信息传递设置信息
- Jupyter Notebook(Anaconda)【快捷键】
- Kubernetes Dashboard的安装与配置
热门文章
- 2019年Q3:全球超大规模数据中心数量增至504个
- Py之pandas:利用pandas工具输出每行的索引值、及其对应的行数据
- ML之SVM:基于SVM(sklearn+subplot)的鸢尾花iris数据集的前两个特征(线性不可分的两个样本),判定鸢尾花是哪一种类型
- Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5+1个样本)——类别预测
- deap实战_2017中国数学建模大赛_B题_第二题
- docker 的mysql镜像使用手册 官网原文 日期2017-05-25
- OpenGL ES 如何能看到一个物体内部和象3dmax中能只显示网格线
- SQLServer之分离数据库
- ActiveMQ_3Java实现
- AS打开速度慢,AS项目导入慢,新建项目导入慢