mekakic
2008-07-21, 15:54:31
Hi,
ich habe mir den Assemblercode von einigen Trivial-Programmen angeschaut und mich gewundert, wieso ein ++i 4x MOV und 1x LEA Operationen braucht:
++i;
mov 0xfffffffffffffff0(%rbp),%rax
mov (%rax),%eax
lea 0x1(%rax),%edx
mov 0xfffffffffffffff0(%rbp),%rax
mov %edx,(%rax)
Kenne mich zugegeben nicht sehr gut mit Assembler aus, aber warum lädt man das nicht einfach und macht ein INC(Q) oder ein ADD(Q)?
ich habe mir den Assemblercode von einigen Trivial-Programmen angeschaut und mich gewundert, wieso ein ++i 4x MOV und 1x LEA Operationen braucht:
++i;
mov 0xfffffffffffffff0(%rbp),%rax
mov (%rax),%eax
lea 0x1(%rax),%edx
mov 0xfffffffffffffff0(%rbp),%rax
mov %edx,(%rax)
Kenne mich zugegeben nicht sehr gut mit Assembler aus, aber warum lädt man das nicht einfach und macht ein INC(Q) oder ein ADD(Q)?