ARMに関するメモ。
binutilsを使用。pmgr収録。
% cat a.s mov pc, lr % arm-wince-pe-as a.s % arm-wince-pe-objdump -d a.out a.out: file format pe-arm-wince-little Disassembly of section .text: 00000000 <.text>: 0: e1a0f00e mov pc, lr
r0~r15の16個。r9~r15には別名がある。
レジスタ | 別名 | 由来 | 説明 |
r9 | sb | Static Base | ? |
r10 | sl | Stack Limit | ? |
r11 | fp | Frame Pointer | x86のBPに相当 |
r12 | ip | ? | x86のIPとは別物。プロローグで使用される |
r13 | sp | Stack Pointer | x86のSPに相当 |
r14 | lr | Link Register | return先を示す。mov pc,lrがx86のretに相当 |
r15 | pc | Program Counter | x86のIPに相当 |
ARM
mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4
x86
push ebp mov ebp, esp
ARM
ldmfd sp, {fp, sp, pc}
x86
pop ebp ret