Какой формат дизассемблер утилиты аварийного завершения использует для вывода инструкций по сборке?

Утилита 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

Дополнительная информация:

Другие вопросы по тегам