00:00
那接着咱就一鼓作气,下边呢来看一下,叫比较条件跳转指令,比较条件跳转指令类似于比较指令和条件跳转指令的一个结合体,就结合在一块儿了,可以理解成了叫二合一,那这个时候的二合一呢,主要针对的你看我从这一直画到这,主要针对呢,大家你会发现除了前面有衣服之外呢,后边这块呢,你看都带着一个I,这个I呢,就是说的int类型。当然了,也包括咱们说的short呀,BY呀,Char啊,乃至于波尔行啊,这块我们也都包含在内了,那对于这个long float double,咱们刚才讲的那些,你去用那些啊,比较指令和这个条件跳转指令咱们已经讲过了,这块呢,主要操作的就是咱们说的int类型这块。它这块呢,你看这个是int类型的叫compare cp呢就compare意思,这个呢就叫做equals,判断一下你占顶的这俩元素。这个是不是相等的,占点的这俩元素呢,是不是不相等的,是不是lower than小于,比如说你这个下边这个是不是小于上面那个对吧,然后这个呢,叫greater than是不是大于,这个是不是叫小于或者是等于,这个叫大于或者是等于。
01:13
OK,那就是前者,就是先说的是前者就是V1,就是占下边那个,然后这个V2呢,后者就是占顶的那个,那这个情况,那对于引用数据类型呢,这咱们用的就是a compare,这个叫eose啊,还是说叫nine ES啊这样的两个指令,所以这个指令你看虽然长,但是它这个意义呢,咱们一剖析大家就清楚了。就清楚了对吧,那这块也提到了,说接收两个字节的操作数作为这个参数,然后进行这个计算的跳转,如果你要满足的话呢,就跳转,不满足的话就不跳转。嗯,说的很清楚,行,咱们直接呢,就上例子。这个比较条件调整指令123这块写了三个,咱们直接来这块来看。来看它行,这个呢,咱们也是直接在这分析就行啊,不是特别难,那我们简图局部变量表操作入站这一章呢,咱们主要就是说这俩结构的,首先呢,这里边BF是一个十啊,这块整个十进来,然后把它S到一角标为一的位置,把它保存到这,这其实就是咱们的这个I。
02:16
那这个呢就出去了,然后再来一个20,然后再保存到这个二的位置,这是20,这其实我们的这个阶对吧,20也就干掉了,那再下边呢,就是system.out啊就进来,然后LLO1把这个十呢整过来,LLO2把这个20呢整过来,接下来这就我们说的这个指令。I compare叫greater。哦,Equals就是greater equals就是这个十,十大于等于20吗?这个事呢,是不是一个不满足的呀。不满足的话呢,注意咱们就直接往下走,满足的话呢,才跳转不满足直接往下走,那ICON1那这两这咔咔出去了,然ICON1这个一就进来了,然后呢,一进来之后goto一下19直接呢就到这输出了就结束了,那下面我们就输入这个一,那这个一呢,在咱这儿呢,你调的具体这个print方法看一下这个景五,所以咱们刚才不是看过了吗?这块是不是还是那个布尔类型的,咱们刚才因为你这个压入到我们操作数站里边的是不是一呀。
03:15
If卡尔塔压入是个一,那一对应的是不是就是触啊,所以这时候我们输出的结果呢,就是处。哪是处?看下是处吗?十小于20。嗯,是出对吧,哎就没问题,那如果这个位置你要改成是大于的话呢,现在呢,我们就会发生这个跳转了。转转一下吧,别,别懵了啊。那我改成大于了,这个大于的话呢,是不是该输出的叫,嗯,大于是false了,该。重新编译一下。编译完了,大家主要注意看这块儿,看这个。我现在都有刷新。看是不是变了,那现在呢,还是它俩这块呢,是十,上面是20,这个呢叫lower or ES,就是小于等于这个十呢,小于等于20吗?是不是显然是处啊,只要满足的话呢,我们就跳转到18 18就到这儿,那我这块呢,是不是填进来一个零。
04:08
那零的话呢,这个对应的输出语句零是不是false啊,所以这个结果呢,输出的就是false,那这个十大于20,这个是不是结果也是false。没问题,好过了,然后再看下边这个,下边这个呢,咱们想强调的点呢,就是虽然说我们这个这个比较条件跳转指令这里边都是针对这个int类型的,当然也有那个引用类型啊,这个int类型这里边儿呢,我们自然而然就包括了这个像short和BAT这种场景,所以呢,咱们再看这个例子。刷新一下这个compare这个例子,这个例子的话呢,哎,但是你看我跟跟这个比较注意,但是你看这啊,我现在切换一下。大于这俩符号看都一样,主要这俩的区别数这个一个是九,一个是十,那short跟Y的类型来说不一样,但是你看我们这块注意我刷新了啊。哦,刷新这没用,那得得这样啊,那我现在要点击了。
05:03
诶。点点,当然你看我们这个具体的这个指令这块。看到了吧。是不是主要区别呢,就是我们这个负的这个值不一样对吧,其他这位置你看全都是一样子的,那我这块也不用具体展开来说了,相当于呢,针对于short和BAT的话呢,咱就把它具体的看成是这个int类型,看I storm嘛,I store去处理就完事啊,都完事,本身这个呢是大于这个也是大于,你看下边这个指令,这都一样对吧?好过了再往下的话呢,叫if compare3我们想要描述的就是关于这个引类型这块啊一看哇,这个好多呀,因为主要这里边涉及到复杂大脑呢,就是我们造对象的时候呢,这个一个呢,我们要调这个,呃以大法是吧,复制一份,另外呢,调这个类实力构造器方法嘛。然后再保存,然后又造个对象再保存,然后再把它俩取出来,是不是到这个为止,咱们现在这个操作数站里边,这现在的目前放了一个叫OBJ1,然后OBJ2放了它俩对吧?这俩的话呢,目前是在这个操操做的上边这个呢,咱们就细节我就不说了,咱们前面也讲过了,然后这俩完了以后呢,接下来有一个。
06:11
这个引用类型compare,这个叫none equals,就是不等于的意思啊,说OBJ1我简写了不等于OBJ2,那这个情况,那这呢,注意放的不是变量名,而是咱们具体这个变量在你对空间,你用的那个实体对象的那个地址值,这也是地址值,那咱们这是用了俩对象,所以这俩地值是不是显然是不等于的呀?正好跟我们这里边说的叫nine equals是匹配的,那既然匹配呢,我们就发生跳转,跳转到这个21加七,就是28的这个位置,28那在这儿呢。到这儿了对吧,那相当于我们这时候再往这个站里边就压入一个零,呃,下边是个输出操作了,这个输出咱们在这看一下,它比较的也是个波尔型,那零对应的是不是就false啊,所以这个结果呢,就是false。那实际上的话呢,你看这俩是俩俩对象,那等等是不是也确实是false对吧,下边有个不等再往后走。
07:05
那这个调用完之后呢,我们又入一下system叫al,然后再把这个。OB接一,其实下边这个就比较简单了啊,跟上面的一样。上面是OB加二,把它俩又重新的压进来,压进来之后呢,这个我们用的是这叫equals说OB接一,你这个是不是等等于OB加二呢?哎,这个显然呢,这个是不满足的对吧,因为他俩明显是俩具体的地值嘛,那他要不满足的话呢,注意就不要跳转了,不要跳转那就直接往下走。那就这块呢,是压入了一个一进来,然后勾出到45去输出一对应的是不是处啊,所以这个呢,是不是就是处啊。刚才这个我们说的这是false对吧,但显然的话呢,你看是不是也是对的。没问题对吧,那这个呢,也确实,否则这个呢,就是出行这样呢,就是针对我们说的叫引用类型,那这样的话呢,咱们就把这个比较条件跳转,主要针对的是这个int类型和引用类型这块咱就说完了,非int的long float double啊,你们呢,去用条件跳转和比较这俩结合着啊去做就行。
08:12
好了,那么这两个呢,我们就说完了。
我来说两句