연산시 left, right로 일정 칸만큼 이동하는 연산 방법이다. 어떤 프로그래밍 언어를 사용하더라도 공통적으로 지원하는 부분이니 잘 기억해두도록 하자
쉬프트 연산시 주의사항
최상위 비트(음수)가 켜져있으면 그대로 유지됩니다.

Red box : 논리연산
Blue box : 시프트 연산

처음 input data는 12345678 이다. 이후 shl eax,8을 했는데 결과는 34567800이다. shift연산은 비트 단위로 일어나기 때문이다.

그리고 shift를 통해서 지워진 데이터는 다시 shift로 원복한다고 하더라도 복구되지 않는다. shl로 34567800의 값을 얻고 shr로 다시 원위치 시켰지만 사라진 12는 다시 원복되지 않는 것을 알 수 있다.
장점:
쉬프트 연산을 통해 x2 또는 /2 를 더 편하게 할 수 있다.
이전 div, mul을 사용하지 않아도 더 편하게 할 수있다.


다른건 자주 봐왔고 자주 사용했던 부분들이다.
xor에 대해서 좀 더 살펴보자.
xor는 두번 반복하면 다시 자기자신으로 돌아오는 특징을 가지고 있다.95->e9->95
이는 암호학에서 유용하게 사용될 수 있다.
value xor key형식으로 사용하여value를 한번 꼬아서 내보내고 받는 쪽에서key를 적용하여 다시 원래 값으로 사용할 수 있게 된다.
참고로 SASM은 binary 형태를 출력하지 못한다.
어디 사용할 수 있을까?
오늘은 여기까지
오늘은 비트연산자에 대해서 배웠다. 오랜만에 코테연습 문제를 풀던 생각이 났다. 그때는 자유자재로 사용하지 못했는데 이번 어셈블리 파트가 끝나면 코테도 같이 해봐야겠다. 더 즐겁게 문제를 풀 수 있기를 바란다.