汇编--学习笔记(一)-寄存器(一)
来源:互联网 发布:数据信息安全管理制度 编辑:程序博客网 时间:2024/06/05 11:33
每个寄存器相当于CPU中的一个存储单元,但它的存取速度比存储器要快得多。它用来存放计算过程中所需要的或所得到的各种信息,包括操作数地址、操作数运算的中间结果等。
80X86 CPU中的寄存器可以分为通用寄存器、段寄存器和专用寄存器三类,共14个16位的寄存器。
三种寄存器:
- 段寄存器
- 代码段寄存器
- 数据段寄存器
- 堆栈段寄存器
- 附加段寄存器
- 通用寄存器
- 数据寄存器
- 指针寄存器
- 变址寄存器
- 专用寄存器
- 堆栈指针寄存器
- 指令指针寄存器
段寄存器(4个–16位)
80X86 CPU中有四个专门存放段地址的16位的寄存器,称为段寄存器。每个段寄存器可以确定一个段的起始地址,而这些段则各有各的用途,它们分别是:
除非专门指定,一般情况下,各段在存储器中的分配是由操作系统负责的。每个段可以独立的占用64KB存储区,各段也可以允许重叠,所谓的重叠知识指每个段区的大小允许根据实际来分配,而不一定要占64KB的最大空间,系统允许程序员在必要时可指定所需占用的内存区。
通用寄存器(7个)
只有AX、BX、CX、DX这四个寄存器可以以字(16位)或字节(8位)的形式访问。
SI、DI这两个变址寄存器有自动增量和自动减量的功能,用于变址是非常方便的。
专用寄存器(2个)
当这一地址送到存储器后,控制器可以取得下一条要执行的指令,而控制器一旦取得这条指令就马上修改IP的内容,使它指向下一条指令的首地址。通常它是顺序增加的,从一条指令边界至下一条指令,但是在执行JMP、CALL、RET、IRET、及条件转移等指令时,它可以指向向前或向后若干条指令。
FLAGS为标志寄存器:
- CF(bit0):进位标志,当运算时,bit5或bit7发生进位(或者说发生进位要求),进位标志就会设定成1.
- PF(bit2):奇偶标志,当运算结果的低8位里有偶数个1,PF就会被设定为1.
- AF(bit4):辅助进位标志 ,当进行字节运算时,若低4位向高4位进位(或借位)时,辅助标志就会设定成1.
- ZF(bit6):零标志,当运算结果等于0时,ZF就会被设定成1.
- SF(bit7):符号标志,当运算结果的最高位等于1时,SF=1(负号),等于0时,SF=0(正号)。
- TF(bit8):单步标志,当TF=1时,会使CPU每执行一道命令,就发生INT 01H的中断(通常是在程序出错时,不过除非你要自己写一个出错的程序,否则应该不会用到它).
- IF(bit9):中断标志,当IF=0时,CPU不允许中断的发生(除了NMI以外).
- DF(bit10):方向标志,通常配合字符串处理的指令使用.
- OF(bit11):溢出标志,当运算发生溢出时(运算结果超出了寄存器容量时,发生溢出,需要以有符号数的方法来看),OF设定成1.
阅读全文
0 0
- 汇编--学习笔记(一)-寄存器(一)
- 汇编--学习笔记(一)-寄存器(二)
- 汇编--学习笔记(一)-寄存器(三)
- 什么是寄存器——汇编学习笔记(一)
- 汇编入门学习笔记 (一)—— 基础知识、寄存器
- 汇编学习笔记(一)
- 汇编学习笔记(一)
- 汇编学习笔记(一)
- 汇编学习笔记(一)
- 汇编学习笔记:寄存器(内存访问)
- 嵌入式汇编学习笔记(二)----寄存器
- Win32汇编学习笔记(一)
- IBM PC汇编学习笔记(一)
- Win32汇编学习笔记(一)
- IL 汇编学习笔记(一)
- 汇编入门学习笔记(一)
- 汇编学习笔记(一) 基础知识概要
- 汇编学习笔记(一)-- 基本知识
- erlang fsm 使用
- epoll模型详解
- BigDecimal的简单使用
- logback/log4j实现log文件一开始自带日期[log4j默认需要触发才会带日期后续]
- 排序算法比较与分析
- 汇编--学习笔记(一)-寄存器(一)
- STM32-时钟树
- C#配置文件操作
- 认识HTML5的WebSocket
- java命令行下如何设置classpath类路径
- [usaco]Mixing Milk题解
- AndroidThings学习笔记--初体验
- JMS之——ActiveMQ高可用集群安装、配置(基于ZooKeeper + LevelDB的伪集群)
- Java 排序算法 介绍