반응형
~ bitwise not
// 단일 숫자의 모든 비트를 대상으로 0은 1, 1은 0으로 뒤바꿈
& bitwise and
// 두 숫자의 모든 비트 쌍을 대상으로 and를 함
| bitwise or
// 두 숫자의 모든 비트 쌍을 대상으로 or를 함
^ bitwise xor
// 두 숫자의 모든 비트 쌍을 대상으로, xor을 한다
<< 비트 좌측 이동
// 비트열을 N만큼 왼쪽으로 이동
// 왼쪽의 넘치는 N개의 비트는 버림. 새로 생성되는 N개의 비트는 0으로 채워짐
// *2를 할 때 자주 보이는 패턴
>> 비트 우측 이동
// 비트열을 N만큼 오른쪽으로 이동
// 오른쪽의 넘치는 N개의 비트는 버림
// 왼쪽 생성되는 N개의 비트는
// - 부호 비트가 존재할 경우 부호 비트를 따라감 (부호있는 정수라면 이 부분을 유의)
// - 아니면 0
flag = (1 << 3);
1. 00A85245 mov byte ptr [flag (0A8A149h)],8
1. flag에 8을 넣음
flag |= (1 << 2);
1. 00A8524C movzx eax,byte ptr [flag (0A8A149h)]
2. 00A85253 or eax,4
3. 00A85256 mov byte ptr [flag (0A8A149h)],al
1. eax에 flag를 넣고
2. eax와 4를 or연산함
3. al을 flag에 넣음
반응형
LIST
'어셈블리' 카테고리의 다른 글
어셈블리로 보는 비교연산 (0) | 2022.08.16 |
---|---|
어셈블리로 보는 산술연산 과정 (0) | 2022.08.16 |
어셈블리 함수 기초 (0) | 2022.08.11 |
어셈블리 배열과 주소 (0) | 2022.08.11 |
어셈블리 반복문 (0) | 2022.08.11 |