Load * Store 명령어 디자인
레지스터 필요성에 초점을 맞춘다.
지금까지 구조는 모든 피연산자에는 메인 메모리의 주소값이 올 수 없다.
(피연산자로 올 수 있는 것을 숫자와 레지스터로 제한 했기 때문에)
때문에 지금까지의 디자인으로 아래와 같은 연산을 할 수 없다.
위에서 마지막 줄 소스는 아래와 같이 바뀐다.
ADD c a b = 더해라 / c의 메모리 주소에 저장히라 / a의 메모리 주소와/ b의 메모리주소를
지금까지 설계한 레지스터 구조에서는 위의 명령어가 불가능하다.
메모리 주소가 올 수 있는 공간이 없기 때문이다.
따라서 메인 메모리에 저장된 데이터를 레지스터로 일단 옮겨 놓은 다음에, 덧셈진행을 해야 한다.
그래서 레지스터와 메인 메모리 사이에서 데이터를 전송할 수 있는 명령어가 필요한 상황이다!
Load
메인 메모리 => 레지스터
source 에 메모리 주소 저장.
0x20번지 주소에 있는 값을 레지스터 r1으로 옮겨 놓아라
Store
레지스터 => 메인 메모리
레지스터 r1의 값을 0x20번지로 옮겨 놓아라.
문제 해결
정리
참고
뇌를 자극하는 윈도우즈 시스템 프로그래밍 정리 - 한빛출판네트워크
'컴퓨터 기초 > 운영체제 이론' 카테고리의 다른 글
9.커널 오브젝트 (0) | 2021.01.19 |
---|---|
7.Direct 모드와 Indirect 모드 (0) | 2021.01.19 |
5.컴퓨터 구조 (0) | 2021.01.18 |
4.Win32비트 Vs Win64비트 (0) | 2021.01.18 |
3.아스키 코드 & 유니코드 (0) | 2021.01.18 |