文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2. 跳转
分 无条件跳转 和 有条件跳转 。
JMP
: 无条件跳转到指定标签。CMP
: 比较,然后根据结果条件跳转。
JE
: 相等,跳转。JNE
: 不等,跳转。JG
: 大于,跳转。JGE
: 大于或等于,跳转。JL
: 小于,跳转。JLE
: 小于或等于,跳转。
另一指令 TEST,常用来测试寄存器是否为零值,比如
test rax, rax
。
利用退出码(exit code)输出比较结果。
global _start section .text main: ; 比较 mov rax, 1 cmp rax, 0 ; 不等则跳转。 jne .ne ; 相等 mov rdi, 1 ; == jmp exit ; 无条件跳转,绕过 .ne。 .ne: mov rdi, 0 ; != jmp exit ; 避免下面添加代码。 exit: mov rax, 60 ; xor rdi, rdi ; 默认值。 syscall _start: jmp main
$ make $ ./test $ echo $? 0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论