chibicc笔记
Chrome或Edge翻译 Safari有点不准
https://www.sigbus.info/compilerbook
macOS下修改
1.main
main –> _main
2.gcc -static -o tmp tmp.s
–> gcc -arch x86_64 -o tmp tmp.s
3.movzb
–> movzx
或者注释掉这个步骤
4.strndup
1 | char *strndup(char *p, int len); |
5.macOS下划线修饰
1 | case ND_FUNCALL: |
6.变量无修饰
1 | printf(" .data\n"); |
7.movsxd –> movslq
https://www.bbsmax.com/A/MyJxPZZAJn/
普通的mov指令
做符号扩展的movs
做零扩展的movz
movb #完成1个字节的复制
movw #完成2个字节的复制
movl #完成4个字节的复制 movx ???
movq #完成8个字节的复制
8.;
1 | println(" .local _%s", fn->name); |
9.extern 变量下划线修饰
- .align –> .p2align
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WuRui!
评论