美文网首页
汇编练习:有符号数比较的相关位置状态

汇编练习:有符号数比较的相关位置状态

作者: Azur_wxj | 来源:发表于2020-03-10 11:34 被阅读0次

描述

两个有符号整数为了比较大小,可以计算二者的差,然后看状态寄存器的相关位。我们断言:

如果a<b,那么ZF=0SF\neq OF,即零状态位为0(也就是相减结果不为0),并且符号位SF的结果和溢出位OF不一致的。

首先,如果a<b,二者必然不相等,因此减法结果一定不为0,所以ZF=0很好理解。
SF\neq OF直观上说明:

  • 如果差是负数(SF=1),则一定没有发生溢出(OF=0);
  • 如果差是非负数(SF=0),则一定发生了溢出(OF=1

那么如何理解SF,OF这俩个位?

理解

溢出

关于溢出。考虑一个4位的假想CPU,则一个有符号整数的表示范围显然是-8\sim7,如果运算结果超过7就会发生上溢出,此时会绕回到负端;同理如果运算结果小于-8,就会发生下溢出,此时会绕回到正端。例如,5+4=9,因为9>7,因此发生了上溢出,绕回到负端就是-7;又如-4+(-5)=-9,因为-9<-8,因此发生了下溢出,就会绕回到正端就是7

我们可以把数域范围想象成一个钟表:

那么可以将算式理解为在的基础上向某个方向走了步,如果表示是顺时针,否则表示方向是逆时针。因此,可以理解为从刻度顺时针走步,可见到达: 同理,认为是,表示从的刻度开始逆时针走步,于是刚好到:

减法与溢出

考虑减法a-b\;(a\neq b),可以看作是0+(a-b)。令c=|a-b|,这就是说,其结果就是从0刻度按照某个方向走c步所达到的位置。显然,1\leqslant c\leqslant15,这就意味着,从0出发,顺时针最多到达-1,逆时针最多到达1,如下图所示

因此,如果,那么,于是其结果就是逆时针走步,当结果是时没有发生溢出,此时结果是负数,所以有;如果发生了溢出,可以发现此时一定是下溢出,溢出后的结果只可能是,不可能出现负数(因为最远到达1,不可能又绕回到负数端),因此如果此时,那么必然有。

反过来说,当二者相减后,如果ZF=0,那么必有a\neq b;此时如果OF=0即没有溢出,那么a<b当且仅当a-b<0当且仅当SF=1;如果OF=1即发生了溢出,且SF=0说明发生了下溢出,这表明a-b<0

综上所述,a<b,当且仅当ZF=0SF\neq OF

总结

其实以4位考虑,有符号数的范围是-8\sim7。此范围任何两个互不相同的数相减,最大值是15,最小值是-15。因此如果能发生下溢出,差一定是负数;如果能发生上溢出,差一定是正数。不可能差是正数但是出现下溢出的情况。

相关文章

  • 汇编练习:有符号数比较的相关位置状态

    描述 两个有符号整数为了比较大小,可以计算二者的差,然后看状态寄存器的相关位。我们断言: 如果,那么且,即零状态位...

  • iOS逆向之初识别汇编

    汇编语言是使用助记符代替机器语言。 汇编语言的种类,目前讨论比较多的汇编语言有 • 8086汇编(8086处理器是...

  • 常见汇编代码

    # 常见汇编代码 # 1. 编写程序:比较AX,BX,CX中带符号数的大小,将最大的数放在AX中 code...

  • 8086汇编(37)检测比较结果的条件转移指令

    检测比较结果的条件转移指令 因为cmp指令可以同时进行两种比较,无符号数比较和有符号数比较,所以根据cmp指令的比...

  • 16位汇编简记

    汇编: 汇编即是机器指令助记符,机器指令让cpu工作。像是mov、jmp、jcxz等汇编指令都有对应的机器指令。有...

  • 1.4数据宽度

    计算机对数据的处理是有大小限制的。 本节必须掌握的知识点: 1、数据宽度 2、理解有符号数、无符号数 3、进制的符...

  • Cpp:位操作符

    位操作符:位操作符操作的整数可以是有符号或无符号数。 下面的例子,假设unsigned char有8位: ~: 类...

  • IOS安全攻防学习之汇编

    什么是汇编,汇编有什么用 汇编:使用助记符代替机器语言,如: 加:INC EAX 通过编译器 0100 0000 ...

  • 怎么让自己快速进入深度工作状态

    仪式感。有削铅笔的,有写今日目标分解的,有其他的,都是为了进入状态,做相关的准备。 最最关键的,把手机放在比较远的位置。

  • 不要让有符号数和无符号数做比较

    仿真打印结果为:result is 1 本意是认为a是有符号数,b是无符号数,所以a是负数时, a>b的结果应该是...

网友评论

      本文标题:汇编练习:有符号数比较的相关位置状态

      本文链接:https://www.haomeiwen.com/subject/qeebdhtx.html