Какой формат дизассемблер утилиты аварийного завершения использует для вывода инструкций по сборке?
Утилита Crash может разбирать функции ядра. но какой формат он использует? Что является первым, источником или местом назначения?
inst src, dist
или же
inst dist, src
Вот о чем я спрашиваю:
crash> dis sys_signal
0xc0112c88 <sys_signal>: push %ebp
0xc0112c89 <sys_signal+1>: mov %esp,%ebp
0xc0112c8b <sys_signal+3>: sub $0x28,%esp
0xc0112c8e <sys_signal+6>: mov 0xc(%ebp),%eax
0xc0112c91 <sys_signal+9>: mov %eax,0xffffffec(%ebp)
0xc0112c94 <sys_signal+12>: movl $0xc0000000,0xfffffff0(%ebp)
0xc0112c9b <sys_signal+19>: lea 0xffffffd8(%ebp),%eax
1 ответ
Дизассемблер генерирует синтаксический код AT&T, который ставит источник первым, а пункт назначения последним. (Синтаксис Intel делает противоположное, и вы можете различить их на основе использования таких символов, как %
а также $
повсюду.)
- AT&T:
mov %srcreg,%dstreg
- Intel:
mov dstreg, srcreg
Дополнительная информация: