728x90
어셈블리 명령어(Assembly Instructions): SHL, SHR, SAL, SAR, ROL, ROR, RCL, RCR
이번 포스트에서는 어셈블리 명령어 중에서도
bit의 이동(shift)을 통한 데이터 값의 변화를 주는 Instructions에 대해서 살펴보겠다.
표로 간략하게 각 Instructions의 기능을 알아보면 아래와 같다.
SHL, Shift left | 왼쪽으로 밀어(shift) 높은 bit를 내보내고 Carry Flag로 복사 낮은 bit쪽에 0을 더하여 채운다. |
SHR, Shift right | 오른쪽으로 밀어 낮은 bit를 내보내고 Carry Flag로 복사 높은 bit 쪽에 0을 더하여 채운다. |
SAL, Shift arithmetic left | SHL과 결과적으로 동일하다. 왼쪽으로 밀어(shift) 높은 bit를 내보내고 Carry Flag로 복사 낮은 bit쪽에 0을 더하여 채운다. |
SAR, Shift arithmetic right | SHR과 결과적으로 동일하지 않는다. 오른쪽으로 밀어 낮은 bit를 내보내고 Carry Flag로 복사 높은 bit 쪽에 0을 더하여 채운다. But keep sign(1) 해야한다. |
ROL, Rotate left | 모든 bits이 왼쪽으로 밀려(shift)난다. 왼쪽에 위치한 가장 높은 bit가 Carry flag와 가장 낮은 오른쪽 마지막 bit에 복사된다. |
ROR, Rotate right | 모든 bits이 오른쪽으로 밀려(shift)난다. 오른쪽에 위치한 가장 낮은 bit가 Carry flag와 가장 높은 왼쪽 마지막 bit에 복사된다. |
RCL, Rotate carry left | 모든 bits를 왼쪽으로 이동한다. Carry flag의 값을 복사하여 마지막 bit에 넣어준다. Most Significant Bit(MSB)를 Carry flag로 복사한다. |
RCR, Rotate carry right | 모든 bits를 오른쪽으로 이동한다. Carry flag 값을 MSB로 복사한다. Least Significant Bit(LSB)를 복사하여 Carry flag에 넣어준다. |
728x90
'Computer Science' 카테고리의 다른 글
[Programming] Lexemes, Tokens (0) | 2021.07.10 |
---|---|
[Programming] Queue(큐): 선형 큐(Linear Queue), 원형 큐(Circular Queue) (0) | 2021.07.08 |
[Programming] 어셈블리(Assembly) 용어 정리: EAX, EBX, ECX, ESI, EDI, ESP, EBP, INC, DEC, MOV (0) | 2021.07.03 |
[Programming] FIFO Algorithm, FIFO와 QUEUE의 차이점 (0) | 2021.06.30 |
[Programming] 어셈블리 코드 기본 세팅, assembly code settings (0) | 2021.06.27 |
댓글