bios71 IMHO проще сразу привести весь нужный

bios71
IMHO проще сразу привести весь нужный кусок кода:


/* Save the parameters I was passed */
   "       pushl   $0\n\t" /* 20 adjust */
   "       pushl   %0\n\t" /* 16 lb_start */
   "       pushl   %1\n\t" /* 12 buffer */
   "       pushl   %2\n\t" /*  8 lb_size */
   "       pushl   %3\n\t" /*  4 entry */
   "       pushl   %4\n\t" /*  0 elf_boot_notes */
/* Compute the adjustment */
   "       xorl    %%eax, %%eax\n\t"
   "       subl    16(%%esp), %%eax\n\t"
   "       addl    12(%%esp), %%eax\n\t"
   "       addl     8(%%esp), %%eax\n\t"
   "       movl    %%eax, 20(%%esp)\n\t"
/* Place a copy of coreboot in its new location */
/* Move ``longs'' the coreboot size is 4 byte aligned */
   "       movl    12(%%esp), %%edi\n\t"
   "       addl     8(%%esp), %%edi\n\t"
   "       movl    16(%%esp), %%esi\n\t"
   "       movl     8(%%esp), %%ecx\n\n"
   "       shrl    $2, %%ecx\n\t"
   "       rep     movsl\n\t"
/* Adjust the stack pointer to point into the new coreboot image */
   "       addl    20(%%esp), %%esp\n\t"
/* Adjust the instruction pointer to point into the new coreboot image */
   "       movl    $1f, %%eax\n\t"
   "       addl    20(%%esp), %%eax\n\t"
   "       jmp     *%%eax\n\t"
   "1:     \n\t"


bios71 писал(-а):
" jmp *%%eax\n\t" вроде как должен прыгнуть по логике на следующую строку ?
Смещение в 20(%%esp) чему равно?

Вы не любите кошек?! вы просто не умеете их готовить !! ( см. coreboot)