도전!

다행이도 번역된 어셈블리언어 자료를 구할수 있게되었다. 감사합니다. ㅎ 아래에 파일 첨부.

 

기수법중

 최상의 비트를 MSB(Most significant Bit)

 차하위 비트를 LSB(Lesast significant Bit) 라 한다.

 

메모리의 단위 ( 각각 다름)

워드 (word) 

 2 바이트 

더블워드 (double word)

 4 바이트

쿼드워드 (quad word)

 8 바이트

패러그래프(paragraph)

 16 바이트

 

  워드란? 하나의 연산을 통해 저장 장치로부터 프로세서의 레지스터에 옮겨 놓을 수 있는 데이터 단위이다. 프로세서마다 각각 다르다. 한 워드에는 한 개의 컴퓨터 명령어, 저장 주소 처리되어야 할 응용프로그램 데이터를 저장 할 수 있다.

 

 

1.2.3  CPU 80x86계열

     8088, 8086 :

 

 보호모드 및 섹렉터에 대해 설명 5 ~ 9 다치 참고 하도록..

 

 

CPU 마다 각각의 고유한 기계어를 가지고 있고 고유의 어셈블리어를 가지고 있다. 이책에서는 NASM(Netwide Assembler)

 

1.3.3 피연산자

  명령들에 따라 피연사의 형태와 개수가 다르다. 보통 고정된 피연산자수(0-3)를 갖는다. 피연산자의 종류로는

 

 레지스터 : CPU레지스터들에게 직접적으로 접근

 메모리 : 메모리에 저장된 데이터를 가리킨다.

 즉시 피연산자 : 즉시 피연산자(immediate) 는 명령 자체에 있는 고정된 값들이다. 이들은 명령 자체에 저장된다

(즉, 세그먼트가 아닌 코드세그먼트에 저장됨) ?

묵시적 피연산자 : 묵시적 피연산자(implied)는 정확히 나타나지 않는다.  

                         예를들어 증가 명령은 레지스터나 메모리에 1을 더한다. 이때 1을 묵시적 피연산자라고 한다.

 

1.3.4 기초명령

 

 mov 이 명령은 두개의 피연산자를 필요로한다.

 move dest, src    ; src에 있는데이터가 dest로 복사된다. 이때 두 피연산자가 모두 메모리면 안된다. 또한 두 피연산자의 크기가 같아야된다.

 

mov     eax, 3    ; eax 레지스터에 3을 대입한다.(3은 즉시 피연산자 이다)

inc      ecx        ; ecx++

dec     dl          ; dl--

 

 

1.3.5 지시어

  지시어 (directive)는 CPU가 아닌 어셈블러를 위해 만들어 진 것이다.  어셈블러에게 무언가를 알려주는 역할을 한다.

  지시어는 기계 코드로 변환되지 않는다. 주용도

  • 상수를 정의한다.
  • 데이터를 저장할 메모리를 저장한다.
  • 메모리를 세그먼트로 묶는다.
  • 조건적으로 소스코드를 포함시킨다.
  • 다른 파일들을 포함시킨다.

     NASM은 C와 비슷한 전처리 명령들이 있다. 그러나 NASM의 전처리기 시지어는 C어서의 #이 아닌 %를 사용한다.

 

equ 지시어

equ 지시어는 심볼(symbol)을 정의할 때 사용. 심볼은 어셈블리 프로그래밍시 사용되는 상수를 뜻한다.

 

ex) symbol equ value

한번 정의된 심볼의 값은 절대로 재정의 될 수 없다.

 

The % 정의 지시어  C언어듸 #define 지시어 와 동일 

 

 

print_int         EAX 에 저장된 값을 화면에 출력한다.
print_char      AL 에 저장된 아스키 코드 값에 대응 하는 문자를 화면에 표시한다
print_string     EAX 에 저장된 문자열의 주소값 에 해당하는 문자열을 화면 에 출력한다. 문자열은 반드시 C 형식

                          이어야 한다   (i.e. null 로 종료).
print_nl          화면에 개행문자를 출력한다.
read_int         키보드로 부터 정수를 입력받은 다음 EAX 레지스터에 저장
한다.
read_char      키보드로 부터 한 개의 문자를 입력 받은 후 그 문자의 아스키코드값을 EAX 레지스터에 저장한다.
                                         어셈블리 I/O 루틴

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PC 어셈블리언어  지은이 : Paul A.Carter

        번역자 : 이재범

 

pcasm (1).pdf

 

'ASM' 카테고리의 다른 글

어셈블러  (0) 2015.04.14

링크

http://jeremyko.blogspot.kr/2011/12/blog-post.html

 

'ASM' 카테고리의 다른 글

어셈블리언어  (0) 2015.04.17

+ Recent posts