1
내 컴퓨터 구조 교본에서이 예제 프로그램에 대해 혼란스러워합니다. 여기 Y86 프로그램 합계 합계
은 ...C 코드의 그리고 여기에 생성 된 Y86 코드의 ...
내 질문은 0x046
mrmovl 8(%ebp), %ecx
함께 정확히 시작을 설정하는 이유는 무엇입니까? 스택 포인터 앞에 8 바이트? 나는 모든 것이 어디 있는지 거의 혼란 스럽다고 생각합니다. 스택이 0x100을보고있는 것처럼 정확히 % ecx가 거기에서 8 바이트 떨어져 있고 Count가 % ebp에서 12 바이트 떨어져 이미 설정되어있을 때 4 씩 증가하는 이유는 무엇입니까? 스택 포인터가 정확히 무엇을보고 있는지에 대한 나의 이해는 잘못된 것이다.
제 생각에는 * 시작이 스택에 푸시 된 세 번째 최신 항목 이었기 때문에 최신 및 최신 2 번째 항목 (각각 4 바이트)을 지나서 *로 시작해야합니다. 바이트 시작. * 시작 바이트는 배열에 대한 주소를 포함하고 _that_는 4 씩 증가합니다. 프로그램 끝에서 스택에 .pos 100을 설정합니다. 그래서 4 바이트를 스택에 넣고 100-103 번지 또는 0FD-100 번지에 있습니까? – Weston