어셈블리어에서 명령어는 오피코드(Operation Code) 와 오퍼랜드(Operand) 로 구성되어 있습니다. 쉽게 말하면 '무엇을 어떻게 해라' 가 명령어 이고, 무엇을이 오퍼랜드(데이터)이고 어떻게 해라가 오피코드입니다.
오퍼랜드는 데이터 자체도 되지만 데이터를 갖고 있는 레지스터 일 수도 있고, 데이터가 들어 있는 메모리를 가리키는 포인터 일 수도 있기 때문에 이를 통들어서 오퍼랜드라고 합니다.
간단한 예로
inc a 명령에서 inc 는 '증가시켜라'는 op code 이고 a (어큐물레이터) 가 오퍼랜드(데이터를 갖고 있는 레지스터) 가 됩니다.
add a, #12h 이 명령은 a 레지스터의 내용을 직접수치 12h 와 더해서(ALU 에서 연산이 이루어 짐) 다시 a 레지스터에 결과를 두라는 명령입니다. 이경우는 오퍼랜드가 2 개 입니다.
cjne a, #12h, next1 이 명령은 오퍼랜드가 3 개이고, a 레지스터와 직접수치 12h 를 비교해서 둘의 값이 다르면 next1 이라는 곳으로 점프하고 둘의 값이 같으면 이 명령을 무시하고 다음 명령을 실행하라는 명령입니다. 이렇듯 오퍼랜드는 최대 3 개 까지 있을 수 있습니다.
다음검색