博客
关于我
有符号和无符号的运算--标志寄存器(8086)
阅读量:517 次
发布时间:2019-03-07

本文共 1221 字,大约阅读时间需要 4 分钟。

汇编原理:CPU标志寄存器及运算指令

CPU标志寄存器概述

在CPU内部有一组特殊的标志寄存器,这些寄存器记录了CPU在执行指令时的某些重要信息。这些标志寄存器包括ZF、PF、SF、CF和OF,分别用于存储不同的操作结果和状态信息。了解这些标志寄存器的功能,对于优化汇编语言程序和理解CPU工作原理有重要意义。

标志寄存器详解

1. ZF标志位(零标志位)

  • 功能:记录操作过程中是否结果为0。
  • 逻辑规则
    • 如果结果为0,则ZF = 1;
    • 如果结果不为0,则ZF = 0。

2. PF标志位(奇偶标志位)

  • 功能:判断数值是否为奇数或偶数。
  • 逻辑规则
    • 如果有奇数个1,则PF = 0;
    • 如果有偶数个1,则PF = 1。

3. SF标志位(符号标志位)

  • 功能:判断数值的正负。
  • 用途
    • SF = 1时,表示数值为负数;
    • SF = 0时,表示数值为正数。
  • 补码表示:计算机通常使用补码表示有符号数,负数用∞补码表示。例如:
    • 00000001B 可以看作无符号数1,也可以看作有符号数+1。
    • 10000001B 可以看作无符号数129,也可以看作有符号数-127。

4. CF标志位(进位标志位)

  • 功能:记录无符号运算中的进位或借位信息。
  • 描述
    • 对于加法运算,CF记录最高位的进位信息。
    • 对于减法运算,CF记录从更高位借位的情况。

5. OF标志位(溢出标志位)

  • 功能:判断有符号数运算是否溢出。
  • 逻辑规则
    • 如果溢出发生,则OF = 1;
    • 如果没有溢出发生,则OF = 0。
  • 溢出范围
    • 对于8位数据,溢出范围是-128~127。如果计算结果超出此范围,溢出将被触发。

处理无符号数和有符号数

有符号数运算特性

  • 符号位(SF):用于判断结果的正负。
  • 过flows(OF):用于判断运算是否溢出。
  • 过flows标志(CF):在有符号数运算中,CF无意义。

无符号数运算特性

  • 过flows标志(CF):记录进位或借位信息。
  • **符号位(SF)**和 过flows标志(OF):在无符号数运算中无意义。

运算指令详解

1. adc指令(借位加法)

  • 格式:adc 源器1,源器2
  • 功能:执行借位加法,计算公式为:目标器 = 源器1 + 源器2 + CF
  • CF含义:CF代表借位值,来源于前一指令是否发生进位或借位。

2. sbb指令(借位减法)

  • 格式:sbb 源器1,源器2
  • 功能:执行借位减法,计算公式为:目标器 = 源器1 - 源器2 - CF
  • CF含义:与adc类似,CF代表借位值。

3. cmp指令(比较指令)

  • 格式:cmp 源器1,源器2
  • 功能:执行比较运算,计算源器1 - 源器2,但不存储结果。标志寄存器会根据结果更新:
    • ZF:判断是否为零;
    • PF:判断奇偶性;
    • SF:判断正负;
    • CF:表示是否发生进位。

通过上述标志寄存器和指令操作,汇编程序可以有效地处理数值运算,实现复杂的逻辑控制。理解这些知识对于优化汇编代码和调试程序至关重要。

转载地址:http://apwnz.baihongyu.com/

你可能感兴趣的文章
NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
查看>>
NutzWk 5.1.5 发布,Java 微服务分布式开发框架
查看>>
NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
查看>>
NuxtJS 接口转发详解:Nitro 的用法与注意事项
查看>>
NVelocity标签使用详解
查看>>
NVelocity标签设置缓存的解决方案
查看>>
Nvidia Cudatoolkit 与 Conda Cudatoolkit
查看>>
NVIDIA GPU 的状态信息输出,由 `nvidia-smi` 命令生成
查看>>
NVIDIA-cuda-cudnn下载地址
查看>>
nvidia-htop 使用教程
查看>>
nvidia-smi 参数详解
查看>>
Nvidia驱动失效,采用官方的方法重装更快
查看>>
nvm切换node版本
查看>>
nvm安装以后,node -v npm 等命令提示不是内部或外部命令 node多版本控制管理 node多版本随意切换
查看>>
ny540 奇怪的排序 简单题
查看>>
NYOJ 1066 CO-PRIME(数论)
查看>>
nyoj------203三国志
查看>>
nyoj58 最少步数
查看>>
OAuth2 + Gateway统一认证一步步实现(公司项目能直接使用),密码模式&授权码模式
查看>>
OAuth2 Provider 项目常见问题解决方案
查看>>