Blog | Tag | Local | Guest | Login | Write |  RSS
안녕하세요...요즘 피곤한 일이 계속 생겨서 힘이 좀 드는군요. 감기기운도 다시 돌고 ㄷㄷㄷ 아무쪽록 멤 회원분들의 건강 조심하세요 요즘 학교에서는 중앙 처리 장치를 공부하고 있는데 블로그는 아직  기본 컴퓨터의 구조와 설계라니요...아무래도 이런 블로그에 글을 올린다는게 처음이여서 그런거 같습니다. 널리 널리 이해해 주세요. 그럼 지난 블로그에 이어서 컴퓨터 명령어에 대해서 알아보도록 하겠습니다.
위의 그림 처럼 기본 컴퓨터는 3가지의 명령어 코드 형식을 가지고 있으며 각 명령어에서는 3비트로 구성된 연산 코드(opcode)에 의해 나머지 13비트의 의미가 결정이 됩니다.

(a) 메모리 참조 명령은 12비트를 주소지정에 사용하고, 주소 모드 I를 위해 맨 왼쪽의 한 비트를 사용합니다.
(b) 레지스터 참조 명령어는 연산 코드가 111이고 최상위 비트는 0으로 되어 있으며, 주로 AC레지스터에 대한 연산을 지정합니다.
(c) 입출력 명령어는 연산 코드에 111, 최상위 비트에는 1을 가집니다. 레지스터 참조 명령어와 마찬가지로 메모리에 대한 참조가 필요없고, 나머지 12비트를 입출력 연산의 종류를 나타내는 데 사용합니다.

기본 컴퓨터에서는 총 25개의 명령어를 선택하였고 16진수 코드로 표시합니다. 16비트면 4개의 16진수 숫자로 표현이 가능합니다.





















 컴퓨터는 사용자가 생각할 수 있는 모든 데이타 처리 작업을 수행할 수 있도록 충분한 명령어들을 갖고 있어야 하는데 이에 필요한 명령어의 종류들을 생각해 보면
 1. 산술, 논리, 시프트 명령어
     가감산 : ADD, CMA, INC
     곱셈, 나눗셈 : CIR, CIL
     논리 연산 : AND, CMA, CLA
 2. 메모리와 프로세서 레지스터 사이에 정보를 이동시킬 수 있는 명령어
     메모리와 AC간 정보 이동 : LDA, STA
 3. 상태 조건을 검사하는 명령과 프로그램 제어 명령어
     분기 명령어 : BUN, BSA, ISZ
     skip 명령어 : SPA, SNA, SZA, SZE
 4. 입력과 출력 명령어
     INP, OUT

위의 그림에서 왼쪽 그림의 최상위 16진수가 7인것이 레지스터 참조 명령어 F인것이 입출력 명령어이고 오른쪽 그림이 메모리 참조 참조 명령어인데 직접이냐 간접이냐에 따라서 코드가 나뉘어 집니다.


시험볼때 이걸 다 외워서 해야한다는......(숫자외우는게 약해서...) 암튼 다음 블로그에는 타이밍과 제어 부분을 설명하겠습니다.