어셈블리어 명령어 [SHL, SHR]과 Flag
어셈블리어에서 사용하는 명령어 SHL, SHR과 Flag에 대하여 알아보겠습니다.
SHL (Shift Left)
Destination 피연산자를 Source 피연산자의 크기만큼 왼쪽으로 각 비트를 시프트 시킨다.
최상위 비트는 캐리 플래그(CF)로 복사되고 최하위 비트는 0으로 채워진다.
SHL 명령어로 1번 이동할 때 마다 값이 2배씩 증가합니다.
SHR (Shift Right)
Destination 피연산자를 Source 피연산자의 크기만큼 오른쪽으로 각 비트를 시프트 시킨다.
최상위 비트는 0으로 채워지고 최하위 비트는 캐리 플래그(CF)로 복사된다.
SHR 명령어로 1번 이동할 때 마다 값이 2배씩 감소합니다.
SHL과 SHR은 사용하는 양식은 같습니다.
SHL(R) reg, imm
SHL(R) mem, imm8
SHL(R) reg, CL
SHL(R) mem, CL
Flag (플래그)
출처 : https://thestarman.pcministry.com/asm/debug/8086REGs.htm
Flag는 여러 종류가 있지만 주로 사용하는 Flag는 OF(Overflow Flag), ZF(Zero Flag), CF(Carry Flag)입니다.
이상으로 어셈블리어에서 사용하는 명령어 SHL, SHR과 Flag에 대하여 알아보았습니다.
감사합니다.
반응형
'어셈블리어와 악성코드' 카테고리의 다른 글
INT(Interrupt), NOP(No Operation), LOOP (0) | 2018.11.21 |
---|---|
스택(Stack), PUSH, POP (0) | 2018.11.20 |
어셈블리어 XOR을 이용하여 값 바꾸기 (0) | 2018.11.19 |
어셈블리어 명령어 [AND, OR, XOR] (0) | 2018.11.19 |
어셈블리어 명령어 [MUL, DIV] (1) | 2018.11.18 |