[전광성의 어셈블리어 이해하기:4회] 프로그래밍에 필요한 명령어와 디렉티브 (1) 저자: 전광성 | 날짜: 2005년 02월 02일 0 여러가지 명령어(MOV, 다이렉트-오프셋 오퍼랜드, ADD, SUB) 2 .0 플래그와 연산자(OFFSET, PTR, TYPE, 인다이렉트 오퍼랜드) 및 배열 3 .0 JMP, LOOP 명령과 예제 시작하기에 앞서... 시작한지 얼마 되지 않은 것 같은데 벌써 4회이다. 이번 회에서 배우게 될 내용은 다음과 같다. - 자료전송명령(C에서의 대입연산자(=)의 역할을 한다)의 사용 - 덧셈과 뺄셈과 이에 관련된 부수적인 내용의 이해 - 포인터와 배열의 사용 - jmp명령(C에서의 goto)과 루프사용 이제는 본격적으로 프로그래밍에 필요한 명령어와 디렉티브들을 배우게 될 것이..
[전광성의 어셈블리어 이해하기:3회] 어셈블리언어 기초 (3) 저자: 전광성 | 날짜: 2005년 01월 04일 1 .0 어셈블리언어 기초 (1) 2 .0 어셈블리언어 기초 (2) 0 어셈블리언어 기초 (3) DUP 연산자 연속된 여러 값들을 한꺼번에 초기화할 수 있게 해주는 연산자이다. 아까 한 데이터 레이블에 뒤이어 연속적으로 자료를 정의했던 것을 상기시켜보라. 만약 연속된 자료가 1000개 필요하다면 0을 1000개 써야 하므로 매우 귀찮을 것이다. 하지만 DUP연산자를 사용한다면 다음과같이 쓸 수 있다.BYTE 1000 DUP(0) ; 20 bytes, 모두 다 0이다. BYTE 4 DUP("ABC") ; 12 bytes: "ABCABCABCABC" 위와 같이 사용한다. DUP앞에 쓰는 숫자는 '..
[전광성의 어셈블리어 이해하기:3회] 어셈블리언어 기초 (2) 저자: 전광성 | 날짜: 2004년 12월 29일 1 .0 어셈블리언어 기초 (1) 0 어셈블리언어 기초 (2) 3 .0 어셈블리언어 기초 (3) 레이블(Label) 레이블이란 인스트럭션이나 데이터의 위치를 표시해 주는 것이다. 인스트럭션의 위치를 표시해 주는 것이라는 설명에 대해서는 C에서 goto문을 생각하면 가장 쉬울 것이다. C에서는 특정 문장 앞에 L1: 과같이 쓰고, 나중에 그 위치로 옮겨가고 싶을 때 goto L1;이라고 썼다. 어셈블리에서는 jmp이나 loop와 같은 인스트럭션을 쓸 때 사용하게 될 것이다. 이러할 때 쓰이는 레이블을 코드 레이블(Code Label)이라고 한다.데이터의 위치를 표시해 준다는 것은 무엇일까? 바로..
[전광성의 어셈블리어 이해하기:3회] 어셈블리언어 기초 (1) 저자: 전광성 | 날짜: 2004년 12월 22일 0 어셈블리언어 기초 (1) 2 .0 어셈블리언어 기초 (2) 3 .0 어셈블리언어 기초 (3) 강좌를 시작하며 이번 강좌에서는 어셈블리어로 프로그램을 작성하기 위해 필요한 기본 지식들을 배우게 될 것이다. 즉, 자료형과 간단한 명령어, 코딩할 때 알아야할 기반 지식들을 배우게 될 것이다. C언어를 처음 배울 때 #include 부터 배우듯이, 차근차근 밟아나갈 것이다. 참고로 우리는 앞으로 매크로 어셈블러를 사용할 것이다.여기에 나올 간단한 예제들을 직접 해보고 싶다면, 최신버젼을 구해서 해보기 바란다. 그리고 이 강좌 소개및 목차부분에서 언급한 책에서 제공하는 라이브러리도 사용하게 될 것이..
[전광성의 어셈블리어 이해하기:2회] IA-32 프로세서 아키텍쳐란? (3) 저자: 전광성 | 날짜: 2004년 12월 15일 1 .0 IA-32 프로세서 아키텍쳐란? (1) 2 .0 IA-32 프로세서 아키텍쳐란? (2) 0 IA-32 프로세서 아키텍쳐란? (3) 시스크(CISC)와 리스크(RISC) 명령어는 크게 CISC(Complex Instruction Set Computer) 방식과 RISC(Reduced Instruction Set Computer)방식으로 구분할 수 있다. 인텔의 초기 프로세서들은 시스크(CISC : Complex Instruction Set)접근 방식으로 성능 향상시키려고 시도 하였다.CISC 방식은 기본 명령어가 있고 필요에 따라서 뒤에 명령어의 길이를 늘리는 방식으로 명..
[전광성의 어셈블리어 이해하기:2회] IA-32 프로세서 아키텍쳐란? (2) 저자: 전광성 | 날짜: 2004년 12월 08일 1 .0 IA-32 프로세서 아키텍쳐란? (1) 0 IA-32 프로세서 아키텍쳐란? (2) 3 .0 IA-32 프로세서 아키텍쳐란? (3) IA-32 프로세서 아키텍쳐(Processor Architecture) IA-32란 인텔386에서 시작하여 최근의 32비트 프로세서인 펜티엄4에 이르는 프로세서'군' 의미한다. 물론 펜티엄 4에 이르러가면서 많은 변화가 있었지만, 프로그래머의 관점에서 보면 크게 바뀐것이 없다고 할 수 있다. 왜냐하면 프로세서의 수행속도의 향상과 구현방법의 변화로 프로세서가 진화해 갔기 때문이다. 굳이 다른 것이 있다면 멀티미디어 처리에 대한 명령의 성능 향상..
[전광성의 어셈블리어 이해하기:2회] IA-32 프로세서 아키텍쳐란? (1) 저자: 전광성 | 날짜: 2004년 12월 01일 0 IA-32 프로세서 아키텍쳐란? (1) 2 .0 IA-32 프로세서 아키텍쳐란? (2) 3 .0 IA-32 프로세서 아키텍쳐란? (3) 시작하기에 앞서... 컴퓨터는 어느새 우리의 생활과 너무나도 밀접한 연관을 갖게 되었다. 또한 수많은 사람들의 노력으로 컴퓨터에서 계산기 하나만 실행시켜주면 각종 연산을 해내고, 사람과 친숙한 언어를 이용하여 프로그램을 짤 수도 있게 되었다. 하지만 그 기반을 이루기 위해 어떤 일들이 이루어 졌는지 한번 생각해 보았는가? 0과 1로만 이루어진 것들을 어떤 방법을 통해 친숙해 보이도록 만들었을까?필자가 언급한 질문에 대한 대답은 정말 광범위하다..
[전광성의 어셈블리어 이해하기:1회] 어셈블리어를 배우기 위한 기본개념 (3) 저자: 전광성 | 날짜: 2004년 11월 24일 1 .0 어셈블리어를 배우기 위한 기본개념 (1) 2 .0 어셈블리어를 배우기 위한 기본개념 (2) 0 어셈블리어를 배우기 위한 기본개념 (3) 이진수로 나타낸 부호있는 정수 컴퓨터는 음의 정수를 어떻게 표현하는가에 대해 알아보겠다. 컴퓨터는 -1을 만들기 위해 1에다가 2의 보수를 취한다. 2의 보수가 어떤 것인지는 다음 표를 보면 알 수 있다. 참고로 표에서 데이타의 크기는 1바이트이다. 또 비트반전은 1의 보수와 같은 말로서, 1은 0으로, 0은 1로 바꾸어주는 것을 의미한다.10000 0001비트반전(1의보수)1111 1110 더하기 11111 1111 결과1111 11..