사용자 도구

사이트 도구


products:mpino_studio2:box_functions:bit_operations

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
products:mpino_studio2:box_functions:bit_operations [2026/09/09 18:44] – 바깥 편집 127.0.0.1products:mpino_studio2:box_functions:bit_operations [2026/09/10 01:05] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ====== MPINO STUDIO 2 Phase 4-6 · 비트연산 박스함수 ====== ====== MPINO STUDIO 2 Phase 4-6 · 비트연산 박스함수 ======
  
-WORD의 각 비트를 논리 연산하거나 이동ㆍ회전하는 명령을 설명합니다.+WORD의 각 비트를 논리 연산하거나 이동ㆍ회전하는 명령어를 설명합니다.
  
-{{ :products:mpino_studio2:bit-operation-map.svg?1000 |WORD의 각 비트를 논리 연산하거나 이동ㆍ회전하는 명령을 설명합니다. }}+{{ :products:mpino_studio2:bit-operation-map.svg?1000 |WORD의 각 비트를 논리 연산하거나 이동ㆍ회전하는 명령어를 설명합니다. }}
  
-WANDㆍSHLㆍROL의 입력 형태를 비교한 실제 래더 화면입니다.+===== 공통 규칙 =====
  
-{{ :products:mpino_studio2:ladder-wand-shl-rol-2x.png?1000 |WANDㆍSHLㆍROL의 입력 형태를 한 실제 래더 화면입니다. }}+비트연산 명령어는 WORD의 16개 트를 한 번에 계산합니다. 시프트는 바깥으로 밀려난 비트를 버리고 빈자리를 0으로 채우며, 회전은 밀려난 비트를 반대쪽으로 다시 넣습니다.
  
-{{ :products:mpino_studio2:bit-operation-examples.svg?1000 |박스함수 입력값과 실행 결과 예시 }}+===== 박스함수 목록 =====
  
-===== 1. 공통 규칙 ===== +명령어 ^ 미 ^ 
- +| [[products:mpino_studio2:box_functions:bit_operations:wand|WAND]] | 두 WORD의 각 비트를 AND 연산하여 대상에 저장합니다. | 
-비트연산 명령은 WORD의 16개 비트를 한 번에 계산합니다. 시프트는 바깥으로 밀려난 비트를 버리고 빈자리를 0으로 채우며, 회전은 밀려난 비트를 반대쪽으로 다시 넣습니다. +| [[products:mpino_studio2:box_functions:bit_operations:wor|WOR]] | 두 WORD의 각 비트를 OR 연산하여 대상에 저장합니다. | 
- +| [[products:mpino_studio2:box_functions:bit_operations:wxor|WXOR]] | 두 WORD의 각 비트를 XOR 연산하여 대상에 저장합니다. | 
-===== 2. WANDㆍWORㆍWXOR ===== +| [[products:mpino_studio2:box_functions:bit_operations:wnot|WNOT]] | 소스 WORD의 각 비트를 반전하여 대상에 저장합니다. | 
- +| [[products:mpino_studio2:box_functions:bit_operations:shl|SHL]] | WORD를 왼쪽으로 시프트하여 대상에 저장합니다. | 
-==== WAND ==== +| [[products:mpino_studio2:box_functions:bit_operations:shr|SHR]] | D WORD를 오른쪽으로 논리 시프트하여 대상에 저장합니다. | 
- +| [[products:mpino_studio2:box_functions:bit_operations:rol|ROL]] | DㆍCㆍT WORD를 왼쪽으로 회전하여 대상에 저장합니다. | 
-**비트 AND (Word AND)** +| [[products:mpino_studio2:box_functions:bit_operations:ror|ROR]] | DㆍCㆍT WORD를 오른쪽으로 회전하여 대상에 저장합니다. |
- +
-두 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을 사용합니다. |+
  
 ===== 관련 문서 ===== ===== 관련 문서 =====
  
   * [[products:mpino_studio2:box_functions|Phase 4 · 박스함수]]   * [[products:mpino_studio2:box_functions|Phase 4 · 박스함수]]
-  * [[products:mpino_studio2:box_functions:transfer|전송 박스함수]] 
-  * [[products:mpino_studio2:box_functions:conversion|변환 박스함수]] 
   * [[products:mpino_studio2|MPINO STUDIO 2 사용설명서]]   * [[products:mpino_studio2|MPINO STUDIO 2 사용설명서]]
  
products/mpino_studio2/box_functions/bit_operations.1788947072.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki