2016년 10월 9일 일요일

ASSEMBLY LANGUAGE FOR X86 PROCESSORS CHAPTER4

ASSEMBLY LANGUAGE FOR X86 PROCESSORS CHAPTER4

4. 데이터 전송 주소지정과 산술연산

피연산자 유형
1. 즉시값 유형 - 상수 정수
2. 레지스터 - cpu내의 레지스터 이름
3. 메모리 - 메모리 위치에 대한 참조 정보

MOV 명령어

operand 사용 규칙
1. 두 피연산자는 같은 크기 여야 한다
2. 두 피연산자가 모두 메모리 일 수는 없다
3. CS EIP 는 DST일 수 없다 ( MOV 의 앞에 적는 곳)
4. 즉시값은 세그먼트 레지스터로 이동할 수 없음

작은 operand를 큰 operand 로 복사
MOVZX명령어 - ZERO 확장 ( 0으로 채움)
MOVSX 명령어 - SIGN 확장 (1 or 0 으로 채움)

XCHG 명령어 - EXCHANGE
내용을 서로 교환함
메모리 간의 교환을 할 수 없음

연산과 FLAG

FLAG 레지스터
산술 논리 연산 결과에 따라 값이 정해짐
MOV 명령어의 영향 받지 않음

ZF - 결과값 0이면 1
SF - 결과가 음수면 1
CF -  unsigned value 가 표현 범위를 벗어나면 1
OF - signed value가 표현범위 벗어나면 1

---추후수정----

댓글 없음:

댓글 쓰기