주소지정방식의 종류

  1. 의미 주소지정방식
    • 명령어 형식에서 주소 필드를 필요로 하지 않는 방식
    • 연산코드 필드에 지정된 묵시적 의미의 오퍼랜드를 지정
    • ex) ADD; TOS ← TOS + TOS-1
      • 기억장치 스택에서 ADD와 같은 명령어는 스택의 맨 위 항목과 그 아래 항목을 더하여 스택의 맨 위에 저장하는 명령어로서, 오퍼랜드가 스택의 맨 위에 있다는 것을 묵시적으로 가정함

  2. 즉치 주소지정방식
    • 명령어 자체 내에 오퍼랜드를 지정하고 있는 방식
    • 오퍼랜드 필드의 내용이 실제 사용될 데이터
    • 레지스터나 변수의 초기화에 유용
    • ex) LDI 100, R1; R1 ← 100
    • 기호 표기 : LDA #NBR

  3. 직접 주소지정방식
    • 명령어의 주소필드에 직접 오퍼랜드의 주소를 저장시키는 방식
    • 기억장치에의 접근이 한번에 이루어짐
    • ex) LDA ADRS; AC ← M[ADRS]

  4. 간접 주소지정방식
    • 명령어의 주소필드에 유효주소가 저장되어있는 기억장치 주소를 기억시키는 방식
    • ex) LDA [ADRS]; AC ← M[M[ADRS]]

  5. 레지스터 주소지정방식
    • 오퍼랜드 필드에 레지스터가 기억되는 방식
    • 레지스터에 오퍼랜드가 들어있음(유효주소가 없음)
    • ex) LDA R1; AC ← R1

  6. 레지스터 간접 주소지정방식
    • 레지스터가 실제 오퍼랜드가 저장된 기억장치의 주소 값을 갖고 있는 방식
    • ex) LDA (R1); AC ← M[R1]

  7. 상대 주소지정방식
    • 유효주소를 계산하기 위해 처리장치 내에 있는 특정 레지스터의 내용에 명령어 주소필드 값을 더하는 방식
    • 특정 레지스터로 프로그램 카운터(PC)가 주로 사용
    • ex) LDA $ADRS; AC ← M[ADRS+PC]
      • 유효주소 = 명령어 주소부분의 내용 + PC의 내용

  8. 인덱스된 주소지정방식
    • 인덱스 레지스터의 내용을 명령어 주소 부분에 더해서 유효주소를 얻는 방식
    • ex) LDA ADRS(R1); AC ← M[ADRS+R1]
      • 유효주소 = 명령어 주소부분의 내용 + 인덱스 레지스터의 내용

명령어 종류

  1. 데이터 전송 명령어
    • 한 장소에서 다른 장소로 데이터를 전송하는 명령어
    • 레지스터와 레지스터 사이, 레지스터와 기억장치 사이, 또는 기억장치와 기억장치 사이에 데이터를 이동하는 기능
    • 입출력 명령어가 포함

전송명령어 니모닉 기능
Load LD 기억장치로부터 레지스터로의 전송
Store ST 레지스터로부터 기억장치로의 전송
Move MOVE 레지스터로부터 다른 레지스터로의 전송
Exchange XCH 두 레지스터 간 또는 레지스터와 기억장치 간의 데이터 교환
Push PUSH 기억장치의 스택과 레지스터 간의 데이터 전송
Pop POP
Input IN 레지스터와 입출력장치 간의 데이터 전송
Output OUT



  1. 데이터 처리 명령어
    • 데이터에 대한 연산을 실행하고 컴퓨터에 계산능력을 제공

산술명령어 니모닉 기능
Increment INC 1 증가
Decrement DEC 1 감소
Add ADD 덧셈
Subtract SUB 뺄셈
Multiply MUL 곱셈
Divide DIV 나눗셈
Add with carry ADDC 캐리를 포함한 덧셈
Subtract with borrow SUBB 빌림을 포함한 뺄셈
Negate NEG 2의 보수
논리명령어 니모닉 기능
Clear CLR 모든 비트를 0으로 리셋
Set SET 모든 비트를 1로 셋
Complement COM 모든 비트를 반전
AND AND 비트별 AND 연산
OR OR 비트별 OR 연산
Exclusive-OR XOR 비트별 XOR 연산
Clear carry CLRC 캐리 비트의 리셋
Set carry SETC 캐리 비트의 셋
Complement carry COMC (반전)보수



  1. 프로그램 제어 명령어
    • 프로그램 수행의 흐름을 제어
    • 다른 프로그램의 세그먼트로 분기

제어 명령어 니모닉 기능
Branch BR 조건 혹은 무조건적으로 유효주소로 분기
Jump JUP
Skip next instruction SKP 조건이 만족되면 다음 명령어를 수행하지 않고 넘어감
Call procedure CALL 서브루틴 호출
Return from procedure RET 서브루틴 실행 후 복귀
Compare(by subtraction) CMP 두 오퍼랜드의 뺄셈을 통해 상태 레지스터의 값을 변환
Test(by ANDing) TEST 논리 AND 연산만 구현

Updated: