汇编语言之80X86寄存器组相关知识

80X86寄存器组图

标志寄存器相关说明

运算结果特征标志(用于记录程序中运行结果的特征)

CF(Carry Flag):进位标志,记录运算结果的最高位向前产生的进位或借位。可用于检测无符号数二进制加减法运算时是否发生溢出(溢出时CF=1)。

PF(Parity Flag):奇偶标志,记录运算结果最低8位中含1的个数是奇还是偶。可用于检测数据传送过程中是否发生错误。

AF(Auxiliary carry):辅助进位标志,记录运算结果最低4位向前产生的进位或借位。只有在执行十进制运算指令时才关心此位。

ZF(Zero Flag):零标志,记录运算结果是否为0。结果为0则置1,否则清0。

SF(Sign Flag):符号标志,记录运算结果的符号。结果为负则置1,否则清0。

OF(Overflow Flag):溢出标志,记录运算结果是否超出了机器所能表示的范围。可用于检测带符号数运算时是否发生溢出(溢出时OF=1)。

控制标志(用于控制处理器的操作)

IF(Interrupt Flag):中断允许标志。IF的控制只对外部可屏蔽中断请求(INTR)起作用。当IF=1时允许CPU响应INTR。

DF(Direction Flag):方向标志。专服务于字符串操作指令,当DF位为1时,每次操作后使变址寄存器SI和DI减小,这样就使串处理从高地址向低地址方向处理。当DF位为0时,则使SI和DI增大。

TF(Trap Flag):陷阱标志,用于程序调试。当TF=1 时,CPU处于单步方式;当TF=0时,CPU处于连续方式。

IOPL(I/O Privilege Level):特权标志,占D13和D12两位。在保护模式下,用于控制对I/O地址空间的访问。只对80286以上CPU有效。

ID(Identification):标识标志,若ID=1,则表示Pentium支持CPUID指令。只对Pentium以上CPU有效。

在调试程序DEBUG中提供了测试标志位的手段,它用符号表示某些标志位的值,见下表。


标志名


标志为1


标志为0


OF溢出(是/否)


OV


NV


DF方向(减量/增量)


DN


UP


IF中断(允许/关闭)


EI


DI


SF符号(负/正)


NG


PL


ZF零(是/否)


ZR


NZ


AF辅助进位(是/否)


AC


NA


PF奇偶(偶/奇)


PE


PO


CF进位(是/否)


CY


NC

注:

  1. 对于字、双字、四字数据类型,访问时只需给出最低单元的地址号即可。按照Intel公司的习惯,其低地址中存放低位字节数据,高地址中存放高位字节数据 -- “逆序存放”。
  2. 一个内存单元地址要用段基地址和偏移量两个逻辑地址来描述,表示为段基址:偏移量。(16d*段地址+偏移地址=物理地址)
时间: 2024-11-13 18:27:58

汇编语言之80X86寄存器组相关知识的相关文章

80X86寄存器详解<转载>

引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识, 自然,还是得从最基础的开始,那就从汇编语言开刀吧, 从汇编语言开刀的话,我们必须还先要了解一些其他东西, 像  CPU ,内存这些知识点还是理解深刻一点的比较好, 所以这一篇博文就绕着 80x86  CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 . 同时在这里说明一下,本篇博文介绍的算是比较详细的了,而且介绍的知识点也是比较多的,所以造成博文长度过长, 如果有兴趣想了解这一块的话,还请自行斟酌

80X86寄存器详解

引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识, 自然,还是得从最基础的开始,那就从汇编语言开刀吧, 从汇编语言开刀的话,我们必须还先要了解一些其他东西, 像  CPU ,内存这些知识点还是理解深刻一点的比较好, 所以这一篇博文就绕着 80x86  CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 . 同时在这里说明一下,本篇博文介绍的算是比较详细的了,而且介绍的知识点也是比较多的,所以造成博文长度过长, 如果有兴趣想了解这一块的话,还请自行斟酌

svn常规操作与相关知识

Svn常规操作与相关知识 一.何谓版本控制 它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本 二.可供我们选择的版本控制系统 1.VCS  (本地版本控制) 2.VSS.CVS(集中版本控制) 3.ClearCase.SVN.Perforce.TFS(集中版本控制) 4.Mercurial(水银/水星).Git(分布式版本控制) 差异: 1.Git和其他版本控制系统的主要

深入浅出安卓学习相关知识,如何从零学好移动开发

原文发表自我的个人主页,欢迎大家访问 http://purplesword.info/mobile-develop 由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向. 有不少同学问我如何学习安卓,要学些什么,难不难学.之前一直没有想好应该怎么回答这个问题,只是简单的说安卓自身门槛不高,并不难学.因为我觉得准确回答一个类似这样的问题往往需要灵感.现在根据我的学习体验,做个大概的总结. 1.我为什么学安卓 我从刚开始接触安卓开发到现在也有两三年的时间了

(整理)ubuntu 的 相关知识(来自 鸟哥的私房菜)

1. Linux 文件权限概念 $ ls 察看文件的指令 $ ls -al 出所有的文件详细的权限与属性 (包含隐藏档,就是文件名第一个字符为『 . 』的文件) 在你第一次以root身份登入Linux时, 如果你输入上述指令后,应该有上列的几个东西,先解释一下上面七个字段个别的意思: 图2.1.1.文件属性的示意图 第一栏代表这个文件的类型与权限(permission): 这个地方最需要注意了!仔细看的话,你应该可以发现这一栏其实共有十个字符:(图2.1.1及图2.1.2内的权限并无关系) 图2

进程和cpu的相关知识和简单调优方案

进程就是一段执行的程序,每当一个程序运行时,对于操作系统本身来说,就创建了一个进程,并且分配了对应的资源.进程可以分为3个类别: 1.交互式进程(I/O) 2.批处理进程 (CPU) 3.实时进程 (REAL-TIME) 对于交互式进程来说,一般其占用的cpu时间片很段,但是优先级偏高;批处理进程占用的cpu时间片很长,但是优先级偏底;实时进程是内核所使用的,其优先级高于前面两种. 上面说到了优先级,linux进程是具有优先级的,一般分为两种: 1.实时优先级 2.静态优先级 实时优先级的取值范

OSPF相关知识与实例配置

OSPF相关知识与实例配置[基本知识及多区域配置] OSPF(开放式最短路径优先协议)是一个基于链路状态的IGP,相比于RIP有无环路:收敛快:扩展性好等优点,也是现在用的最多的:所以这次实验就针对于OSPF(HCNA)内容进行一个探究: 在说ospf配置前:我们先来了解下ospf LSA的类型: type1 LSA:每个ospf路由器都会产生type1 LSA:描述了对应设备接口的物理接口所连接的链路或接口,并且表明了个链路的状态.开销等参数:(只在区域内泛洪) Type2 LSA:网络LSA

java堆栈相关知识

Java栈与堆 本博客内容由网上搜集而来,作者加以修改整理而成 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆程序员不能直接地设置栈或堆. 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器.但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性.另外,栈数据可以共 享,详见第3点.堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据.但缺点是,由

视频压缩算法的相关知识

视频压缩算法的相关知识MPEG-1MPEG 视频压缩编码后包括三种元素:I帧(I-frames).P帧(P-frames)和B帧(B-frames).在MPEG编码的过程中,部分视频帧序列压缩成为I帧:部分压缩成P帧:还有部分压缩成B帧.I帧法是帧内压缩法,也称为“关键帧”压缩法.I帧法是基于离散余弦变换DCT( Discrete Cosine Transform )的压缩技术,这样的算法与JPEG压缩算法相似.採用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹. 在保证图像质量的前提下实现高压