문서의 이전 판입니다!
목차
MPINO STUDIO 2 Phase 4-6 · 비트연산 박스함수
1. 공통 규칙
비트연산 명령은 WORD의 16개 비트를 한 번에 계산합니다. 시프트는 바깥으로 밀려난 비트를 버리고 빈자리를 0으로 채우며, 회전은 밀려난 비트를 반대쪽으로 다시 넣습니다.
2. WANDㆍWORㆍWXOR
WAND
비트 AND (Word AND)
두 WORD의 각 비트를 AND 연산하여 대상에 저장합니다.
입력 형식: WAND D0 D1 D2
| 실행 조건 | 실행 전 | 입력한 명령 | 예상 결과 |
|---|---|---|---|
| 왼쪽 조건 ON | D0=0x00CC, D1=0x00AA | WAND D0 D1 D2 | D2=0x0088 |
WOR
비트 OR (Word OR)
두 WORD의 각 비트를 OR 연산하여 대상에 저장합니다.
입력 형식: WOR D0 D1 D2
| 실행 조건 | 실행 전 | 입력한 명령 | 예상 결과 |
|---|---|---|---|
| 왼쪽 조건 ON | D0=0x00CC, D1=0x00AA | WOR D0 D1 D2 | D2=0x00EE |
WXOR
비트 XOR (Word XOR)
두 WORD의 각 비트를 XOR 연산하여 대상에 저장합니다.
입력 형식: WXOR D0 D1 D2
| 실행 조건 | 실행 전 | 입력한 명령 | 예상 결과 |
|---|---|---|---|
| 왼쪽 조건 ON | D0=0x00CC, D1=0x00AA | WXOR D0 D1 D2 | D2=0x0066 |
3. WNOT
비트 NOT (Word NOT)
소스 WORD의 각 비트를 반전하여 대상에 저장합니다.
입력 형식: WNOT D0 D1
인수
- 1번째 = S: 반전할 소스 주소 또는 상수
- 2번째 = D: 결과 저장 주소
| 실행 조건 | 실행 전 | 입력한 명령 | 예상 결과 |
|---|---|---|---|
| 왼쪽 조건 ON | D0=0x00CC | WNOT D0 D1 | D1=0xFF33 |
4. SHLㆍSHR
SHL
논리 왼쪽 시프트 (Shift Left)
WORD를 왼쪽으로 시프트하여 대상에 저장합니다. 왼쪽으로 빠진 비트는 버리고 오른쪽 빈자리는 0으로 채웁니다. 이동 수는 0 ~ 15를 사용합니다.
입력 형식: SHL D0 2 D1
인수
- 1번째 = 소스: 정수 WORD 주소
- 2번째 = 이동 수: 0 ~ 15
- 3번째 = 대상: 결과 저장 주소
| 실행 조건 | 실행 전 | 입력한 명령 | 예상 결과 |
|---|---|---|---|
| 왼쪽 조건 ON | D0=0x0003 | SHL D0 2 D1 | D1=0x000C |
SHR
논리 오른쪽 시프트 (Shift Right)
D WORD를 오른쪽으로 논리 시프트하여 대상에 저장합니다. 오른쪽으로 빠진 비트는 버리고 왼쪽 빈자리는 0으로 채웁니다.
입력 형식: SHR D0 1 D1
인수
- 1번째 = 소스: D WORD 주소
- 2번째 = 이동 수: 0 ~ 15
- 3번째 = 대상: 결과 저장 주소
| 실행 조건 | 실행 전 | 입력한 명령 | 예상 결과 |
|---|---|---|---|
| 왼쪽 조건 ON | D0=0x000C | SHR D0 1 D1 | D1=0x0006 |
5. ROLㆍROR
ROL
왼쪽 회전 (Rotate Left)
DㆍCㆍT WORD를 왼쪽으로 회전하여 대상에 저장합니다. 왼쪽으로 빠진 비트는 오른쪽 끝으로 다시 들어옵니다.
입력 형식: ROL D0 2 D1
인수
- 1번째 = 소스: DㆍCㆍT WORD 주소
- 2번째 = 회전 수
- 3번째 = 대상: DㆍCㆍT WORD 주소
| 실행 조건 | 실행 전 | 입력한 명령 | 예상 결과 |
|---|---|---|---|
| 왼쪽 조건 ON | D0=0x8001 | ROL D0 2 D1 | D1=0x0006 |
ROR
오른쪽 회전 (Rotate Right)
DㆍCㆍT WORD를 오른쪽으로 회전하여 대상에 저장합니다. 오른쪽으로 빠진 비트는 왼쪽 끝으로 다시 들어옵니다.
입력 형식: ROR D0 1 D1
인수
- 1번째 = 소스: DㆍCㆍT WORD 주소
- 2번째 = 회전 수
- 3번째 = 대상: DㆍCㆍT WORD 주소
| 실행 조건 | 실행 전 | 입력한 명령 | 예상 결과 |
|---|---|---|---|
| 왼쪽 조건 ON | D0=0x0003 | ROR D0 1 D1 | D1=0x8001 |
6. 문제해결방법
| 증상 | 확인할 항목 |
|---|---|
| 오른쪽 시프트에 부호 비트가 채워지지 않습니다. | SHR은 상위 빈자리를 0으로 채우는 논리 시프트입니다. |
| 시프트 뒤 비트가 사라졌습니다. | 비트를 보존하려면 SHLㆍSHR 대신 ROLㆍROR을 사용합니다. |

