跳转指令
跳转指令也是一个组的指令,称为j组。其中jmp为无条件跳转,其余为条件跳转
上图为j组指令,可结合条件码访问指令加深理解
在机器指令水平上理解如何对跳转指令编码
jmp指令的对应机器指令有两个字节:eb表示这是jmp指令,03描述跳转信息。值得注意的是,跳转指令进行编码时,采用相对位置编码,如03描述的就是偏移量
使用汇编语言的跳转指令实现C语言的条件分支
,如上图,左边的程序可以通过上边的指令翻译成汇编指令
对上边指令的理解:
control.c为输入的文件
-s表示把c语言程序翻译为汇编指令
-og是一种程序优化形式。这种形式优化程度较低,但是是在不改变程序原有结构的前提下进行优化,故而能更加清楚的看到程序语言和汇编语言间的关系。在实际应用中,-o1、-o2优化程度更高,能更大程度提高程序性能,尤其-o2已经成为当前的主流标准。但是这两种形式可能改变原有高级语言的语句结构,难以建立高级语言和汇编指令间的映射关系,故在学习中不采用
-fn