大型机汇编(mainframe assembler/HLASM)之Branch

来源:互联网 发布:淘宝细节图模板 编辑:程序博客网 时间:2024/05/02 09:55

以上基本上就是一般情况下,经常用到的branch指令,感觉看上去很多,下面我们稍微梳理下,或许对于记忆有些好处:

 

1. compare比较,既然比较就应该有大于小于等于之分,所以有BE BH BL BNE BNH BNL六种

2. TM(test under mask),它是检测一个byte中的某些bit是0还是1的,所以有三种情况,全0全1或0和1都有,所以有BO BZ BM BNO BNZ BNM六种

3. 四则运算也有三种情况,那就是结果是正是负还是0,所以有BP BM BZ BNP BNM BNZ, 但除此之外还有一种情况就是overflow溢出,一共七种

 

 

同样是BO, 在TM里,O是one, 在四则运算中O是overflow

同样是BM, 在TM里,M是mixed,在四则运算中M是minus

 

 

切记,这些指令不能混淆乱用,比如:

TM   field,value

BE   label

就得不到我们想要的结果(想要记得清楚,还需要读者自己上机测试)

 

其实很多情况下上面所说的大家都清楚,只是更多的是,让我们顾忌的是BC指令, 比如

BC  13, label2

它的意思是说当CC=00/01/11时,都跳转。

而蓝色字体中的00 01 10 11又各代表什么呢?

我们这里可以看出,BC应该是在'比较'或者'四则运算'后使用的(对TM不使用)

所以就有了下面这张表:

可以看出'比较'或者'四则运算'的13种结果,表中都有囊括,但还有些是没法用某条指令表示的,这时就显出BC的功能强大了。

 

最后切记,BC不要用在TM之后,它们不能配套使用。

 

有疑问请联系349106216

 

 

                                                        本文没经允许,严禁转载

 


原创粉丝点击