为什么在汇编语言中需大量使用跳转指令,而在c语言中却尽量避免使用goto语句呢?
在c语言中,应该尽量避免的不是goto,而是无条件地使用goto。
汇编语言中有很多跳转指令,但这些指令不是无条件跳转指令。他们面前一定有伊夫尼和伊夫克。注意在汇编语言的使用中,虽然有跳转指令,但不建议无条件地使用这些跳转指令。它必须与一定的条件判断一起使用。
经常编写代码的人知道,if、whilebreak和forall包含跳转函数,但它们只在特定条件下跳转。如果没有像汇编中的jump这样的跳转指令,c语言甚至不能实现if,whilebreak和for。
因此,汇编跳转是正常的,是用来实现程序控制逻辑的必要元素。c语言应该避免无条件地滥用goto。
汇编的跳转指令?
jle(或jng)(小于或等于或不大于时跳转),汇编语言中的条件转移指令。小于或等于,或不大于,则转移。格式:jle(或jng)opr测试条件:(sf∀of)∨zf=1
我不知道你指的是哪种mcu。最常用的89c51系列单片机汇编语言有111条指令,可分为五类:
[1]。数据传输指令(共29条)
[2]。算术运算指令(共24条)][3]。逻辑操作和移位指令(共24条)
[4]。控制转移指令(共17条)][5]。布尔变量运算指令(共17条)]]jz指令属于第4类“控制传输类”中的条件传输指令。具体格式和功能如下:
jzrela=0,(pc)2rel→(pc),累加器中的内容为0,
然后将其传输到偏移量所指向的地址,否则程序将运行下去。
jb是5类“布尔变量操作类”指令。其格式和功能如下:
jbbit,relbitstate为1转换。
原文标题:汇编cmp指令跳转 为什么在汇编语言中需大量使用跳转指令,而在C语言中却尽量避免使用goto语句呢?,如若转载,请注明出处:https://www.saibowen.com/tougao/21929.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。