[ CnUnix ] in KIDS 글 쓴 이(By): zeo (ZeoDtr) 날 짜 (Date): 1994년02월08일(화) 14시09분08초 KST 제 목(Title): Re:윤익수 씨 HellCat님, 여기 assembly code 만들어진 거 올립니다. 참고로, 이건 MSC 7.0에서 -Fa option을 주고 (unix의 -S와 같은 거) 만든 assembly source 화일에서 잘라온 겁니다. optimize option은 전혀 주지 않았습니다. 소스: -------------------- void main() { int i, x, y, z; x = y = z = 0; i = (++x + ++y) + ++z; i = ++x + ++y + ++z; } assembly output -------------------- ; Line 8 add WORD PTR -10[bp],OFFSET 1 mov ax,WORD PTR -10[bp] add WORD PTR -8[bp],OFFSET 1 mov cx,WORD PTR -8[bp] add WORD PTR -6[bp],OFFSET 1 mov dx,WORD PTR -6[bp] add dx,cx add dx,ax mov WORD PTR -4[bp],dx ; Line 9 add WORD PTR -10[bp],OFFSET 1 mov ax,WORD PTR -10[bp] add WORD PTR -8[bp],OFFSET 1 mov cx,WORD PTR -8[bp] add WORD PTR -6[bp],OFFSET 1 mov dx,WORD PTR -6[bp] add dx,cx add dx,ax mov WORD PTR -4[bp],dx 괄호를 하나 안하나 똑같죠? 먼저 increment를 몽땅 한 다음 모아서 더합니다. 참고로, MSC 7.0에서 -Ot로 optimize하면 main() 함수가 텅 비어버립니다. 즉, main() { int i, x, y, z; } 와 같이 되어 버린다는 거죠. 똑똑하다 MSC 7.0... TCW는 시간이 없어서 못해 봤습니다. 하지만 똑같을 것 같군요. 애고, 일을 해야 되는디... 에이, 내친 김에 mips(CPU는 물론? R3000 계열)에서도 뽑아 봤습니다. # 8 i = (++x + ++y) + ++z; lw $14, 8($sp) addu $15, $14, 1 sw $15, 8($sp) lw $24, 4($sp) addu $25, $24, 1 sw $25, 4($sp) lw $8, 0($sp) addu $9, $8, 1 sw $9, 0($sp) addu $10, $15, $25 addu $11, $10, $9 sw $11, 12($sp) .loc 2 9 # 9 i = ++x + ++y + ++z; lw $12, 8($sp) addu $13, $12, 1 sw $13, 8($sp) lw $14, 4($sp) addu $24, $14, 1 sw $24, 4($sp) lw $8, 0($sp) addu $15, $8, 1 sw $15, 0($sp) addu $25, $13, $24 addu $10, $25, $15 sw $10, 12($sp) .loc 2 10 뭐, R3000 계열의 instruction들을 모르더라도 대충 이해가 가겠지요. 마찬가지로 increment를 몽땅 먼저 하고 있습니다. 참고로, optimize를 약간(default로) 하면 변수(register)는 쓰지도 않고 아예 1 + 1 + 1, 2 + 2 + 2를 해 버립니다. 이제 ++... 문제는 서로 더 이상 이야기 하지 않아도 될 것 같네요. 그쵸? 나도 일 해야 돼요... 또 계속 다른 사람의 PC에 가서 프로젝트 방해하면 안되니깐. (저는 unix 프로젝트를 하고 있기때메 PC가 없어요) 그건 그렇구요, HellCat님께서 저의 unix C에 대한 비난을 읽고 기분이 나쁘셨던 것에 대해 죄송하게 생각합니다. 그에 대한 저의 변론은 제가 시간이 나면 또 하도록 하죠. 제가 올린 글을 다시 읽어 보니 좀 감정에 치우친 부분도 있어서 미안하네요(모든 unix guru(?)들에게도...). 그런데 HellCat님, 이제 HellCat님이 애꿎은 TC를 욕하셨을 때의 저의 기분을 조금은 이해하시겠죠? (문제성 발언? 그렇게 보인다면 죄송.) 기쁜 설날을 맞이하시길... ZZZZZZ zZZ eeee ooo zZ Eeee O O ZZZZZZ Eeee OoO |