Pergunta

Como posso prender um SS: ou ES: Usando a sintaxe da Assembléia AT&T sem adicionar um .byte 0x36 ou .byte 0x26?

ou seja. Como eu seria capaz de converter mov dword ptr ss:[esp+0x10], offset foo Da sintaxe da Intel à AT&T sem usar:

.byte   0x36
movl    $foo, 0x10(%esp)

eu tentei movl $foo, %ss:0x10(%esp) que se reúne sem avisos, mas, olhando através do binário, ainda não adiciona SS:

Foi útil?

Solução

Iirc, o SS: O prefixo não é necessário quando usado com o ESP e EBP registra, porque para eles, já é o padrão.

Essa pode ser a razão pela qual o assembler simplesmente omite para economizar espaço; Portanto, a necessidade de emitir manualmente o SS: prefixo como a 0x36 BYTE, como o assembler não modifica bytes brutos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top