Ho cercato di ottenere una buona presa sul linguaggio assembly x86 e mi chiedevo se esistesse un equivalente rapido e breve di movl $1, %eax
. In quel momento ho pensato che una lista di idiomi usati frequentemente nella lingua sarebbe stata una buona idea.idiomi di assembly x86
Questo potrebbe includere l'uso preferito di xorl %eax, %eax
rispetto a movl $0, %eax
o testl %eax, %eax
rispetto a cmpl $0, %eax
.
Oh, e invia un esempio per post!
'movl $ 1,% eax' è piuttosto veloce e breve. Su alcuni processori, 'xorl% eax,% eax' è in realtà più lento di' movl $ 0,% eax'. Su altri, 'incl% eax' è più lento di' addl $ 1,% eax'. Se hai intenzione di scrivere assembly nel 2010, dovresti sapere per quale architettura stai scrivendo e selezionare il tuo "dialetto" (per mantenere la metafora linguistica) di conseguenza. –
@Pascal Cuoq, potresti spiegare quali fattori influenzano questo tipo di differenza nelle prestazioni? Sono particolarmente sconcertato dal fatto che 'incl% eax' sia più lento di' addl $ 1,% eax'. Inoltre, se potessi indicarmi un link che descrive questo tipo di comportamento, te ne sarò grato! – susmits
Per tutte le architetture x86 nel 2010 xor eax, eax ist più veloce o equivalente, in ogni caso è più breve. Dai un'occhiata a http://stackoverflow.com/questions/1396527/any-reason-to-do-a-xor-eax-eax/1396552#1396552. Questo è più o meno dai tempi di 486. – hirschhornsalz