在查看gdb輸出並查看程序集調用時,通常可以使用硬編碼值查找命令以確定寄存器是否從右向左加載或相反亦然。如何確定寄存器是否從右到左加載或反之亦然
通常類似以下內容:
sub rsp, 16
或
sub 16, rsp
但其他時候,像上面沒有值是可見的。 所有我看到的是這樣的方法調用如下:
(gdb) disassemble
Dump of assembler code for function main:
0x0000000100000f54 <main+4>: mov $rdi,%r15
0x0000000100000f59 <main+9>: mov $rsi,%r14
0x0000000100000f60 <main+16>: mov $rdx,%r13
0x0000000100000f67 <main+23>: mov $ecx,$r12d
End of assembler dump.
一個人如何判斷值進行處理左到右,反之亦然?
如果寄存器有'%'prefix => AT&T語法=>'src,dst'的順序。否則,unatned => Intel語法=>'dst,src'。 –