스택(stack)이란? - 후입선출(LIFO, Last-In-First-Out)의 원리를 따르는 자료구조로 데이터의 삽입과 삭제가 한쪽 끝에서만 일어나는 형태를 말합니다. Push를 통해 데이터를 삽입하고 Pop을 통해 데이터를 삭제합니다. 메모리에서 스택이란? -컴퓨터 메모리의 일부 영역으로, 함수 호출과 관련된 데이터를 저장하는데 사용됨, 함수 생성을하면 PUSH로 함수내부 지역변수들을 넣고, 함수해제시 POP으로 제거함. 메모리 스택 특징 함수 생성되면 함수 내부의 데이터크기를 계산해 먼저 스택에 사이즈 할당함. 지역변수,매개변수들을 차례대로 하나씩 할당함. (매개변수->지역변수->return pc값 순서) 각 변수들의 사이즈는 독립적임 (사이에 들어가는것 불가능) 함수 생성시 마지막에 돌아가야할 ..
이번 장에서는 CPU가 메모리Fetch를 할때 Virtual Address을 Physical Address로 변환 시켜 가져오는 과정을 알아보도록 하겠습니다. 먼저 과정을 크게 살펴보면 CPU가 TLB를 참조하여 Virtual address를 참조함, 있으면 TLB HIT. TBL에 없을경우 TLB miss가 일어나 Page Table에가서 가상주소를 찾아옴 Virtual address를 찾은후 Physical address로 변환함 L1 cache로가서 해당 Physical address에 해당하는값을 찾음, 있으면 L1 HIT. L1에 없을경우 L1 miss가 일어나 다른 메모리로가서 찾음. 찾으면 CPU로 fetch함. 이때 VPO, PPO, CI,CO는 바뀌지않는 값입니다. 즉, 이값은 서로 같아..
*공부 기록용으로 하는 블로그입니다.잘못된 개념이나 오타가 있을 수 있습니다. 잘못된 정보알려주시면 수정하겠습니다!* 산술 연산: add: 덧셈 sub: 뺄셈 mul: 곱셈 div: 나눗셈 inc: 증가 연산 dec: 감소 연산 비트 연산: and: 논리곱 or: 논리합 xor: 배타적 논리합 not: 비트 반전 시프트 연산: shl: 왼쪽 시프트 shr: 오른쪽 시프트 논리 연산: test: 논리곱 연산 결과를 플래그 레지스터에 저장 cmp: 비교 연산 결과를 플래그 레지스터에 저장 분기 연산: jmp: 무조건 분기 jz, je: 제로 플래그가 설정될 경우 분기 jnz, jne: 제로 플래그가 설정되지 않을 경우 분기 ja, jnbe: 양수 플래그와 캐리 플래그가 모두 클 경우 분기 jb, jc, jn..