X86现代汇编·02
下面4这个寄存器只能用16位或3N位名称访问
3N位寄存器 :ESI EDI EBP ESP
16位寄存器: SI DI BP SP
特殊用法:
乘除指令默认用EAX
默认使用ECX为循环计数器
ESP用于寻址堆栈(一种系统内存结构)数据
ESI和EDI用于高速存储器传输指令
高级语言通过EBP来引用堆栈的函数参数和局部变量,除了·高级编程它不用于一般的算数运算和数据传输
段寄存器 实地址模式中,16位段寄存器表示的是预先分配的内存区域的基址 这个内存区域称为段
保护模式中段寄存器中存放的是段描述符指针,一些段中存放程序指令,其他段存放变量,堆栈存放局部函数变量和函数参数
指令指针(EIP)寄存器包含下一条要执行的指令地址
EFLAGS寄存器 EFLAGS(或Flags)寄存器包含了独立的二进制位,用于控制CPU的操作,或反应一些CPU的操作结果.
有些指令可以测试和控制这些单独的处理器标准位
设置标志位时,该标识位 = 1; 清除或重置标识位 ,标识位= 0
状态位标准反映了CPU执行的算数和逻辑操作的结果,其中包括溢出位,符号位,零标志位,辅助进位.等等
进位标志位(CF),与目标位置相比,无符号算数运算结果太大时,设置该标志位。
溢出标志位(OF),与目标位置相比,有符号算数运算结果太大或太小时,设置该标志位
符号标志位(SF),算数或逻辑操作产生负结果时,设置该标志位。
零标志位(ZF),算数或逻辑操作产生负结果时,设置该标志位。
辅助进位标志位(AC),算数操作在8位操作数中了产生了位3向位4进位时,设置该标志位
奇偶效验标志位(PF),结果的最低有效字节包含偶数个1时,设置该标志位,否则清除该标志位。一般情况下,如果数据有可能被修改或者损坏时,标志位用于进行错误检测。
X86现代汇编·02的更多相关文章
- oralce 汇编02
Assembler Directives .align integer, padThe .align directive causes the next data generated to be al ...
- C# inline-asm / 嵌入x86汇编
C#可不可以嵌入汇编 可以 在我眼中C#作为一个介于中上层语言是不可能不可以 置入汇编代码的 为什么会被我认为中上层语言呢 从C#保留指针就可以看出 我知 道有很多人一定不会相信C#可以使用汇编代码 ...
- x86汇编指令脚本虚拟机
简介 这是一个可以直接解释执行从ida pro里面提取出来的x86汇编代码的虚拟机. 非常精简,整体架构上不能跟那些成熟的虚拟机相比,主要目标是够用.能用.轻量就行,如果觉得代码架构设计的不是很好的话 ...
- x64汇编第一讲,Vs系列配置x64环境与x86环境
目录 x64汇编环境配置 一丶x64环境配置 1.1 VS系列编译器配置X64Asm开发环境. 二丶Vs配置X86汇编环境. x64汇编环境配置 一丶x64环境配置 现在windows系统都是64位了 ...
- 深入理解计算机系统(4.1)---X86的孪生兄弟,Y86指令体系结构
引言 各位猿友们好,计算机系统系列很久没更新了,实在是抱歉之极.新的一年,为了给计算机系统系列添加一些新的元素,LZ将其更改为书的原名<深入理解计算机系统>.这本书非常厚,而且难度较高,L ...
- 缓冲区溢出实战教程系列(二):dev c++编译汇编代码
小伙伴们对我上一篇文章的反应完全出乎了我的意料,感谢大家对我的支持和认可.接下来我会精心的把这一系列课程设计好,尽量详细的展示给大家.上篇文章我列举了一个缓冲区溢出的小例子,并提到了dev c++.o ...
- dosbox+masm5.0编译汇编文件
在去年写过如何bc3.1编译ucos,不过现在很少去用到,但是那是用dosbox也是懵懵懂懂的,参见https://blog.csdn.net/liming0931/article/details/8 ...
- 第18章-x86指令集之常用指令
x86的指令集可分为以下4种: 通用指令 x87 FPU指令,浮点数运算的指令 SIMD指令,就是SSE指令 系统指令,写OS内核时使用的特殊指令 下面介绍一些通用的指令.指令由标识命令种类的助记符( ...
- C-编译器的实现
写这个编译器的目的,是为了完成编译原理课上老师布置的大作业,实际上该大作业并不是真的实现一个编译器,而我选择硬刚,是为了完成我的小愿望--手写内核,编译器和CPU.我花了整个上半学期,写完了WeiOS ...
随机推荐
- C#关于文件的创建
若使用文件夹Directory类判断了文件夹的存在,后面的文件就不需要使用File类来判断文件的存在与否和创建,只需要在前面判断过得文件夹路径后面加上文件的名字即可,它会自动判断文件是否存在,若不存在 ...
- RN开发-Flex
1.容器属性 (1). display : flex | inline-flex (块级伸缩容器 | 行内级伸缩容器) (2). flex-direction : row ...
- Python标准库之sys模块
获取Python解释器的版本信息 import sys print(sys.version) #输出 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) ...
- C++ 获取当前正在执行的函数的相关信息(转)
该功能用在日志打印中 原文地址:C++ 获取当前正在执行的函数的相关信息
- C++常用字符串操作和UTF-8和GBK之间的转换以及判定(转)
编码转换原文地址:https://www.cnblogs.com/Toney-01-22/p/9935297.html C++字符串常用操作:C++ 中字符串查找.字符串截取.字符串替换
- (四)tensorflow-基础(数据类型,张量操作,数学运算)
摘要: 1.数据类型:标量.向量.矩阵.张量 :数值精度:变量(张量) 2.张量操作:索引.切片.维度操作 3.数学运算:加减乘除(整除和余除):乘方(平方.开方.指数):自然底对数(任意底对数需要 ...
- yolo系列阅读笔记(v1-v3)
yolov1 模型输出的概率建模 图片首先被分割为S*S的网格(grid cell).如果一个bbox的中心落在一个网格里,则该网格负责检测该物体.(对于pascal数据集,S定为7) 每个网格预测B ...
- django 版本 对应pyhton版本
对应关系
- JDK8-》 ⽅法引⽤与构造函数引⽤
以前⽅法调⽤ 对象.⽅法名 或者 类名.⽅法名 jdk1.8提供了另外⼀种调⽤⽅式 :: 说明:⽅法引⽤是⼀种更简洁易懂的lambda表达式,操作符是双冒号::,⽤来直接访问类或者实例 已经存在的 ...
- 17个IoC 软件包和项目
原文:17个IoC 软件包和项目 1.Autofac GitHub:https://github.com/autofac/Autofac 描述:An addictive .NET IoC contai ...