|
|
|
|
|
by spc476
609 days ago
|
|
Some idiomatic C code to copy a string (I'm not saying this is good C code, but it's just an example): while(*d++ = *s++)
;
On the Motorola 68000 (based somewhat on the PDP-11) the code would look like: loop: move.b (a0)+,d0
move.b d0,(a1)+
bne loop
while on the x86 line, it would be: loop: mov al,[rsi]
mov [rdi],al
inc rsi ; extra instruction!
inc rdi ; extra instruction!
cmp al,0
jne loop
Yes, there are better ways to write that code for both the 68K and x86, but I hope this gets the point across. |
|
...
> loop: mov al,[rsi] mov [rdi],al
This hurts my brain. When we invent time machines I'm going to use it to go back and slap whoever at intel came up with that operand order.