下面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的更多相关文章

  1. oralce 汇编02

    Assembler Directives .align integer, padThe .align directive causes the next data generated to be al ...

  2. C# inline-asm / 嵌入x86汇编

    C#可不可以嵌入汇编 可以 在我眼中C#作为一个介于中上层语言是不可能不可以 置入汇编代码的 为什么会被我认为中上层语言呢 从C#保留指针就可以看出 我知 道有很多人一定不会相信C#可以使用汇编代码 ...

  3. x86汇编指令脚本虚拟机

    简介 这是一个可以直接解释执行从ida pro里面提取出来的x86汇编代码的虚拟机. 非常精简,整体架构上不能跟那些成熟的虚拟机相比,主要目标是够用.能用.轻量就行,如果觉得代码架构设计的不是很好的话 ...

  4. x64汇编第一讲,Vs系列配置x64环境与x86环境

    目录 x64汇编环境配置 一丶x64环境配置 1.1 VS系列编译器配置X64Asm开发环境. 二丶Vs配置X86汇编环境. x64汇编环境配置 一丶x64环境配置 现在windows系统都是64位了 ...

  5. 深入理解计算机系统(4.1)---X86的孪生兄弟,Y86指令体系结构

    引言 各位猿友们好,计算机系统系列很久没更新了,实在是抱歉之极.新的一年,为了给计算机系统系列添加一些新的元素,LZ将其更改为书的原名<深入理解计算机系统>.这本书非常厚,而且难度较高,L ...

  6. 缓冲区溢出实战教程系列(二):dev c++编译汇编代码

    小伙伴们对我上一篇文章的反应完全出乎了我的意料,感谢大家对我的支持和认可.接下来我会精心的把这一系列课程设计好,尽量详细的展示给大家.上篇文章我列举了一个缓冲区溢出的小例子,并提到了dev c++.o ...

  7. dosbox+masm5.0编译汇编文件

    在去年写过如何bc3.1编译ucos,不过现在很少去用到,但是那是用dosbox也是懵懵懂懂的,参见https://blog.csdn.net/liming0931/article/details/8 ...

  8. 第18章-x86指令集之常用指令

    x86的指令集可分为以下4种: 通用指令 x87 FPU指令,浮点数运算的指令 SIMD指令,就是SSE指令 系统指令,写OS内核时使用的特殊指令 下面介绍一些通用的指令.指令由标识命令种类的助记符( ...

  9. C-编译器的实现

    写这个编译器的目的,是为了完成编译原理课上老师布置的大作业,实际上该大作业并不是真的实现一个编译器,而我选择硬刚,是为了完成我的小愿望--手写内核,编译器和CPU.我花了整个上半学期,写完了WeiOS ...

随机推荐

  1. 测试用例与PUCCH

  2. D - Three Integers

    https://codeforces.com/contest/1311/problem/D 本题题意:给出a,b,c三个数,a<=b<=c: 可以对三个数中任意一个进行+1或-1的操作: ...

  3. vue实现网页简单计算器实例代码

    效果: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  4. HDU1010 --- Tempter of the Bone(dfs+剪枝)

    小明做了一个很久很久的梦,醒来后他竟发现自己和朋友在一个摇摇欲坠的大棋盘上,他们必须得想尽一切办法逃离这里.经过长时间的打探,小明发现,自己所在的棋盘格子上有个机关,上面写着“你只有一次机会,出发后t ...

  5. react中用swiper实现大图功能

    1.引入Swiper(用的是4.5.0版本)      import Swiper from 'swiper';      //引入样式,还可以加上自己的样式      import '../../s ...

  6. 0004 继承django系统用户表

    1 创建基础模型 在本项目中,所有表都有两个自动产生的完全相同的字段,即创建时间和更新时间,因此,可以创建一个基础模型,让所有的表都来继承这个模型. 找到工程目录下的PublicMethod目录,创建 ...

  7. AcWing 1018. 最低通行费

    #include<iostream> using namespace std ; ,INF=1e9; int dp[N][N],w[N][N]; int n; int main() { c ...

  8. Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:1099

    方法:把catalina.bat 文件中set JAVA_OPTS= -Xmx1024M -Xms512M -XX:MaxPermSize=256m这行去掉,具体看下面两篇博客 https://blo ...

  9. [HEOI2016] 字符串 - 后缀数组,主席树,ST表,二分

    [HEOI2016] 字符串 Description 给定一个字符串 \(S\), 有 \(m\) 个询问,每个询问给定参数 \((a,b,c,d)\) ,求 \(s[a..b]\) 的子串与 \(s ...

  10. Android基础知识 -- Fragment

    Fragment是android3.0后提供的API(所以android:minSdkVersion="11"以上版本),主要针对平板UI.有自己的生命周期,但是必须依附在Acti ...