1. Boolean and Comparison Instructions
1) AND (Instruction)
1> 사용
AND destination, source
2> 규칙 (MOV와 규칙이 같다.)
- source나 destination 중 하나에만 메모리가 올 수 있다. (메모리에서 메모리로 이동 불가)
- destination에 CS, EIP, IP가 올 수 없다.
- immediate로 이동시킬 수 없다.
3> 예시 1
4> 예시 2
mov al,'a‘ ; AL = 01100001b
and al,11011111b ; AL = 01000001b
2) OR (Instruction)
1> 사용
OR destination, source
2> 규칙 (MOV와 규칙이 같다.)
- source나 destination 중 하나에만 메모리가 올 수 있다. (메모리에서 메모리로 이동 불가)
- destination에 CS, EIP, IP가 올 수 없다.
- immediate로 이동시킬 수 없다.
3> 예시 1
4> 예시 2
mov al, 6 ; AL = 00000110b
or al,00110000b ; AL = 00110110b
5> 예시 3 : CapsLock key
mov ax, 40h ; BIOS segment
mov ds, ax
mov bx, 17h ; keyboard flag byte
or BYTE PTR [bx], 01000000b ; CapsLock on
- or을 이용해서 CapsLock을 킨다는 정도만 알면 된다.
3) XOR (Instruction)
1> 사용
XOR destination, source
2> 규칙 (MOV와 규칙이 같다.)
- source나 destination 중 하나에만 메모리가 올 수 있다. (메모리에서 메모리로 이동 불가)
- destination에 CS, EIP, IP가 올 수 없다.
- immediate로 이동시킬 수 없다.
3> 예시 1
4) NOT (Instruction)
1> 사용
NOT destination
2> 규칙
3> 예시
5) TEST (Instruction)
1> 사용
TEST destination, source
AND 연산과 같으나 destination의 값이 변하지 않고 zero flag만 변한다.
2> 규칙
3> 예시 1
4> 예시 2
test al, 00000011b
jnz ValueFound
AL에서 bit 0이나 bit 1이 켜져 있으면 jump 한다.
5> 예시 3
test al, 00000011b
jz ValueNotFound
AL 에서 bit 0과 bit 1이 모두 꺼져 잇으면 jump한다.
6) CMP (Instruction)
compare
1> 사용
CMP destination, source
=> destination과 source를 비교한다.
2> 규칙
원리 : destination - source의 값으로 flag가 변한다.
- (unsigned) destination == source
=> zero flag set
- (unsigned) destination < source
=> carry flag set
- (unsigned) destination > source
=> zero flag = 0, carry flag = 0
- (signed) destination > source
=> sign flag == overflow flag
- (signed) destination < source
=> sign flag != overflow flag
'Assembly' 카테고리의 다른 글
6-3강 - Conditional Processing 3 (Conditional Structures 조건문) (0) | 2020.06.06 |
---|---|
6-2강 - Conditional Processing 2 (conditional jump, loop) (0) | 2020.06.05 |
5-3강 - Procedure 3 (Link Library) (0) | 2020.05.21 |
5-2강 - Procedure 2 (Procedure) (0) | 2020.05.21 |
5-1강 - Procedure 1 (Stack Operation) (0) | 2020.05.21 |