어셈블러 질문입니다
글쓴이: wcg0112 / 작성시간: 금, 2008/04/11 - 12:58오전
void full_umul(unsigned int x, unsigned int y, unsigned int dest[])
full_umul:
pushl %ebp
movl %esp, %ebp
subl $4, %esp
movl 8(%ebp), %eax
mull 12(%ebp)
movl %eax, 16(%ebp)
movl %edx, 20(%ebp)
leave
ret
.size full_umul, .-full_umul
.section .rodata
이렇게 짜놧는데요...
근데 결과값이 쓰래기값만 출력되네요;;
32비트 2개 곱해서 64비트 출력하는건데
책에보니까 32비트 2개 곱해서
eax edx로 자동으로 할당된다고...
어디가 잘못된건지 지금 2시간쨰 봐도 손을 못데겠네요 ㅠㅠ
Forums:
중간의 mull
중간의 mull 12(%ebp)에서
eax * dword ptr SS:[EBP+12] 를 수행한 결과가 EDX:EAX로 저장됩니다.
위에보니 스택으로 빼고 있군요.
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
댓글 달기