#include <stdio.h> #include <stdbool.h> int main(void) { bool tenki = true; if(tenki == true) printf("晴です\n"); else printf("雨です\n"); return 0; }
|main| PROC |$LN5| stp fp,lr,[sp,#-0x20]! mov fp,sp mov w8,#1 strb w8,[sp,#0x10] ldrb w8,[sp,#0x10] mov w8,w8 cmp w8,#1 bne |$LN2@main| adrp x8,|$SG4984| add x0,x8,|$SG4984| bl printf b |$LN3@main| |$LN2@main| adrp x8,|$SG4985| add x0,x8,|$SG4985| bl printf |$LN3@main| mov w0,#0 ldp fp,lr,[sp],#0x20 ret
cmp : レジスタからレジスタ、またはレジスタから定数の減算を行って、演算結果に対応した条件フラグを設定
-> compareか?
bne: bはジャンプなので、neで異なる場合は$LN2@mainにjumpとなっていることがわかりますね。
条件分岐でelseの場合はニーモニックにlabelをつけて、そこへjumpするように出力していることがわかります。