2007년 3월 14일 수요일

제1강 어셈블리 언어 입문

프로젝트를 진행하기 위하여 급히 시작한 어셈블리 공부이다.
아침 2시간을 이용하여 들었었것들을 정리하였다.

1. 데이터의 형식

컴퓨터의 주된 목적은 데이터를 저장한다던지, 검색 한다든지, 데이터에 대하여 연산을 수행하는 것이다.
데이터 형식의 종류는 부호있는 정수(singed integers), 부호 없는 정수(unsigned integers), BCD(Binary Code Decimal), 문자열(strings), 비트(bits) 그리고 부동소수점 수이다.

2. 메모리 주소 지정

응용프로그래머가 사용할수 있는 레지스터 세트는 전부 16개인데 이들은 3가지 종류로 나뉘여 진다.

범용레지스터

80x86 에는 크기가 32비트인 범용 레지스터가 8개 있는데, 이들은 덧셈, 뺄셈, 곱셈, 나눗셈 등의 사칙연산과 메모리 주소를 형성하기 위해서 사용된다. 이들 8개 레지스터들은 각각 EAX, ECX, EDX, EBX, ESP, EBP, ESI 그리고 EDI라는 이름을 붙인다.

이들 레지스터의 하위 16비트는 단독의 16비트 레지스터로써 접근이 가능하며, 그 경우는 이들 각각이 AX, CX, DX, BX, SP, BP, SI 그리고 DI로 된다. 이들 레지스터는 16비트 레지스터로써 접근했을 때, 32비트 범용 레지스터상의 상위 16비트의 내용이 변하거나 파괴되지 않는다.

X 레지스터 - AX, BX, CX, DX - 의 상위나 혹은 각 8비트는 각각 독립적으로 8비트 레지스터로 접근할수 있다. 두번째 문자에 있는 X대신에 H나 L붙이면 8비트 레지스터를 지정하게 된다. AH라면 AX 레지스터의 상위 8비트, 혹은 EAX레지스터의 비트 8~15까지에 해당되는 것이고 AL라면 AX레지스터의 하위 8비트, 혹은 EAX레지스터의 비트 0~7까지에 해당되는 것이다.

댓글 1개:

  1. 음~! 좋은 자료~!

    비밀글 하지 말것

    ㅋㅋ

    답글삭제