下面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. 简单scrapy爬虫实例

    简单scrapy爬虫实例 流程分析 抓取内容:网站课程 页面:https://edu.hellobi.com 数据:课程名.课程链接及学习人数 观察页面url变化规律以及页面源代码帮助我们获取所有数据 ...

  2. xmind修改默认配置

    XMIND使用过程中,输入英文字符的时候,第1.2层级的英文字母总是默认大写,手动修改很繁琐.默认字体,想切换成其他类型,也是要手动一个个去修改. 网上找了下相关的问题,找到一些解决办法,整理到文档中 ...

  3. vim光标操作

    v可视模式 ve可视模式但不包括selection o操作符等待模式 i插入模式 r替换模式(命令模式下,按r,输入一个字符将替换光标所在处字符) c命令行常规模式 ci命令行插入模式 cr命令行替换 ...

  4. Docker学习笔记三

    4.Docker数据管理 4.1.数据卷 数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似与Linux的mount行为. 特性: 数据卷可以在容器之间共事和重用,容器间传递 ...

  5. docker镜像相关的常用操作

    1.保存镜像 #docker save 镜像名称 -o 保存的完整地址和文件名 docker save zhoushiya/zhiboyuan -o d:/zhiboyuan.tar 2.载入镜像 # ...

  6. Python 编辑注意点

    文本编辑 Python: 绝对不能用Word和Windows自带的记事本. (1)Word保存的不是纯文本文件 (2)记事本会自作聪明地在文件开始的地方加上几个特殊字符(UTF-8 BOM),结果会导 ...

  7. git回退版本: 回退本地代码版本 + 回退服务器代码版本

    1.回退本地代码版本 借助IDEA开发工具回退版本,点击Version Control ,查看历史版本号: 右击想要回退的版本号,选择Reset Current Branch hear... 选择 H ...

  8. pve apt-get update error 升级报错-文章未完工和验证

    pve: apt-get update error 升级报错 提示如下报错 Hit: http://security.debian.org buster/updates InRelease Hit: ...

  9. git 解决每次更新代码都要输入用户名密码

    git config --global credential.helper store git pull /git push (第一次输入,后续就不用再次数据)

  10. z-index的展现形式

    没人告诉你关于z-index的一些事 堆叠顺序 z-index看上去很简单,z-index值大的元素在z-index值小的元素前面,对吧?但其实这只是z-index的一部分用法.很多程序猿都觉得很简单 ...