32位 X86处理器

操作模式

1.保护模式
处理器的原生状态.所有的指令和特征都是可用的.分配给程序独立内存区域被称为段,处理器会阻止程序使用自身段范围之外的内存
2.实地址模式
程序需要直接访问系统内存和硬件设备
3.系统管理模式
向操作系统提供实现诸如电源管理和系统安全等功能的机制
4.虚拟8086模式
程序崩溃了或者向系统内存区域写数据,不会影响同一个时间内执行的其他程序

寄存器

寄存器的特殊用法

乘除指令默认使用EAX. 常被称为 拓展累加器
Cpu默认使用ECX位循环计数器
ESP用于寻址堆栈,常称为 拓展堆栈指针寄存器
ESI EDI用于高速存储器传输指令.常称为 拓展原变址与拓展目的变址
EBP 引用堆栈中的函数参数和局部变量常称为 拓展堆栈指针寄存器
EIP寄存器中包含下一条执行指令的地址
EFLAGS寄存器 包含 独立的二进制位,控制Cpu的操作

CF(进位标志位) 无符号算术运算结果太大了.设置该标志位
OF(溢出标志位) 有符号算术运算结果太大或者太小,设置该标志位
SF(符号标志位) 算术或逻辑产生负结果,设置该标志位
ZF(符号标志位)算术或逻辑产生0时,设置该标志位
PF(奇偶校验标志位) 包含偶数个1时,值为1.如果数据有可能被修改或损坏时,该标志为用于进行错误检测
AC(辅助进位标志位)算术操作在8位操作数中产生了位3向位4的进位时,设置该标志位

通用寄存器主要用于 算术运算,数据传输和逻辑操作
段寄存器存放预先分配的内存区域的基址


伪指令不在运行时执行.用来定义变量,宏和子程序
例子1:
myVar DWORD 26
mov eax,myVar

.code 伪指令标识的程序区段包含了可执行的指令.
.stack 伪指令标识的程序区段定义了运行时堆栈,并设置其大小

学习汇编图文. 寄存器的特殊用法相关推荐

  1. 一步步学习汇编(8)之指令

    要理解ret,retf,call指令,必须要先理清以下汇编基础知识: 一.             [bx]和内存单元<?xml:namespace prefix = o ns = " ...

  2. 【转】学习汇编前你应该知道的知识

    转载地址:http://www.zxbc.cn/html/20070611/22772.html 1.汇编需要什么工具和程序,到哪里下载?     目前阶段,汇编程序仅需要两个程序就够了.masm.e ...

  3. 汇编-输出寄存器的值-输出值

    学习汇编有一阵了,已经能够写出一些简单的计算程序(求斐波那契...) 今天总结一下令初学者感到头疼的寄存器值输出问题 我们知道: 可以看出寄存器值是一个十六位进制的数,我们可以将其每一位都转成字符进行 ...

  4. “C语言” 读书札记(五)之[让我们一起学习汇编吧!(段)]

    "C语言" 读书札记(五)之[让我们一起学习汇编吧!(段)] 介绍 这几天满脑子都是寄存器,存储器--主要是卡在汇编语言上了,所以博文进度比较缓慢. 今天就先讲讲如何定义数据元素吧 ...

  5. X86_64 GNU汇编、寄存器、内嵌汇编

    文章目录 一.汇编语言 二.指令 数据传输指令 栈操作指令 push pop 运算指令 位操作 比较操作指令 标志寄存器 流控制指令 三.伪指令 .equ .rept .endr .lcomm .gl ...

  6. 学习汇编前你应该知道的知识

    1.汇编需要什么工具和程序,到哪里下载?     目前阶段,汇编程序仅需要两个程序就够了.masm.exe,link.exe. 前者是编译程序,后者是链接程序.另外,为了验证和调试程序,还需要一个程序 ...

  7. 学习STM32的寄存器版本好还是库函数版本好

    我个人认为,在回答这个问题之前,你得先问清楚自己,我学习stm32.或者再往更深的地方走,我学习单片机,究竟是为了什么?你现在是处于什么状态?你是学生还是已经参加工作了?你的专业或者你的工作是与单片机 ...

  8. linux汇编语言cmp,汇编语言中cmp指令用法笔记与总结

    这篇文章主要介绍了汇编语言中cmp指令用法,结合实例形式总结分析了汇编语言cmp指令基本功能.使用方法及操作注意事项,需要的朋友可以参考下 本文实例讲述了汇编语言中cmp指令用法.分享给大家供大家参考 ...

  9. 一步步学习汇编系列(7)

    寄存器(内存访问) 从访问内存的角度继续学习几个寄存器<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...

最新文章

  1. python调用函数传参时、有默认值的在中间 报错了_python的大坑:使用空列表作为默认参数,让我怀疑遇到了灵异代码...
  2. 提示MyEclipse Trial Expired,手动获取MyEclipse 注册码
  3. java知识博客网站(一些配置和学习的记录)
  4. dart系列之:dart语言中的异常
  5. 到2030年丰田将斥资135亿美元开发电动汽车电池技术及供应系统
  6. UnityShader中的Queue
  7. 公司怎么吸引和留住核心技术大牛
  8. sizeof和strlen的简单使用方法和区别
  9. python判断汉字偏胖_写了2年python,知道 if __name__ == '__main__' 什么意思吗?
  10. SQL语句学习指南 - 教程书籍
  11. Windows中解压Linux中产生的tar.gz分卷压缩包
  12. 记录下SpringBoot父子工程使用jib构建docker镜像的过程(跳过多余模块)
  13. graphpad prism横坐标怎么设置不显示数值_graphpad,prism,符号显示有问题
  14. android 人物行走动画,android 3D 游戏实现之人物行走(MD2)
  15. python实训报告5000字_实习报告5000字
  16. ADB测试,手机app端,常用指令
  17. 编程之路上的感悟-编程语言该怎么选
  18. wx-sideslip:类似 QQ 通讯录侧滑
  19. eth0和lo含义和虚拟IP技术
  20. 数字化助力社区抗疫———物资管理系统

热门文章

  1. 计算机网络系统容错检测,计算机系统的容错技术方法
  2. php简述一下并集交集差集,总结了一下js中的差集、交集、并集
  3. 每日程序C语言31-auto的使用
  4. Oracle表无法expdp,{Oracle数据库}EXPDP报错ORA-39171、ORA-01691解决方法
  5. linux 验证邮箱账号,linux邮件服务器的身份验证(sasl)
  6. 求和第一个算到最后一个周末求_Excel最全求和函数—sum家族系列
  7. 快速排序、希尔排序、插入排序、选择排序、归并排序、堆排序总结
  8. javaWeb(1)
  9. JS实现全选、反选、不选
  10. [BZOJ 2438] [中山市选2011]杀人游戏 Tarjan缩点