2502d,dmd显示汇编

使用dmd编译器时,使用-vasm编译,会显示在编译时生成的汇编.它被嘲讽了,因为可用objdumpS,但是一旦你试了它,就会知道为什么它如此方便,因为它只是发出汇编器,而不是制作目标文件期望的一大堆样板.

如,我正在研究AArch64代码生成器,即,生成浮点代码.我有一个函数:

float test(float a, float b) { return a * b; }

编译它:

dmd -c test.c -arm -vasm

得到:

test:
    0000:   A9 BE 7B FD  stp       x29,x30,[sp,#-32]!    // https://www.scs.stanford.edu/~zyedidia/arm64/encodingindex.html#ldstpair_pre
    0004:   91 00 03 FD  mov       x29,sp    // https://www.scs.stanford.edu/~zyedidia/arm64/encodingindex.html#addsub_imm
    0008:   BD 00 0F A0  str       s0,[x29,#12]    // https://www.scs.stanford.edu/~zyedidia/arm64/encodingindex.html#ldst_pos
    000c:   B9 40 1B A0  ldr       w0,[x29,#0x18]    // https://www.scs.stanford.edu/~zyedidia/arm64/encodingindex.html#ldst_pos
    0010:   1E 21 08 00  fmul      s0,s0,s1    // https://www.scs.stanford.edu/~zyedidia/arm64/encodingindex.html#floatdp2
    0014:   A8 C2 7B FD  ldp       x29,x30,[sp],#0x20    // https://www.scs.stanford.edu/~zyedidia/arm64/encodingindex.html#ldstpair_post
    0018:   D6 5F 03 C0  ret    // https://www.scs.stanford.edu/~zyedidia/arm64/encodingindex.html#branch_reg

它发出地址,十六进制指令,指令助记符和指令规范网径.
是,我知道代码不是很正确,我说过正在处理它吗:-)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值