EzDoum

찾기
처음으로 | 찾기 | 아카이브 | 글 올리기 | 링크 | 자료실 | 통계 | 연락처 | 자유게시판
이지도움 특집
전체보기
네트워크
TI OMAP35x
TI DaVinci
Analog Blackfin
RobotWar2005
임베디드!
캐쉬의 모든것
메모리 할당 알고리즘
CPU 파이프라이닝
자료구조(Tree)
금융

Login
이름

암호

기억하기


사용자 등록

현재 접속중인 등록 사용자는 0명, 익명 사용자는 4명 입니다.
전체 등록 사용자: 751명

마지막 답장
·libcurl + fuse 조합으로 되는게 많네. (1)
·Linux Ftrace에 관해 (3)
·Android MTP ( Media Transfer Protocol ) (1)
·Lighttpd에 인증을 digest 사용시 IE 오동작 문제? (1)
·Dtrace에 관해 (1)

최근글
·OpenSSL and multi-threads (0)
·ARM 환경에서 OpenCL 사용 (0)
·IoT용 WIFI 모듈 비교 ( MCU ) 클래스 (0)
·Glances - 리눅스 여러 가지 항목을 한 화면에서 모니터링 (0)
·plugin 방식의 로그 분석기 (0)

뜨거운 감자
·나는 인터렉티브한 환경에서 역어셈블 한다. (12)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)
·ASP.NET의 데이터 그리드와 사용자 컨트롤 (7)
·DHTML Editing Control (7)

가장 많이 읽은 글
·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
·멀티쓰레드(Pthread) 프로그래밍
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·Sorting Algorithm Animation (2)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

인라인 어셈블리를 분석하자
글쓴이: EzDoum 글쓴날: 2002년 05월 19일 오전 12:21




---------------------------------------------------------------
강좌 : 인라인 어셈블리를 분석하자.
---------------------------------------------------------------

-- 부제 : /usr/src/linux/include/asm-i386/string.h 분석

이야기 꾼 : 한동훈
인터넷 메일: ddoch@hitel.kol.co.kr
ddoch@nownuri.nowcom.co.kr
이야기 날짜: 1997년 2월 28일

----------------------------------------------------------------

1. 들어가는 말

GNU C( 리눅스의 gcc, 도스의 djgpp 등)의 인라인 어셈블리는 tasm
등의 문법과 조금 차이가 난다. GNU C에서의 인라인 어셈블리, 외부
어블리어는 AT&T에 기반한 문법을 취함으로써 masm, tasm등의 INTEL문
법과는 조금 차이가 나는 것이다. 자세한 문법상의 차이는 여러차례
번역하여 올려드린 AT&T 관련 어셈블리 HOWTO, GUIDE를 보시기 바란
다.

일단 여기서는 리눅스 커널소스안에 위치한 "/usr/src/linux/include/
asm-i386/string.h"를 살펴볼 것이다. 인라인 어셈블리로 만들어 졌으
며 우리가 익숙한 C 함수라 비교적 쉽게 이해가 갈 것이기 때문이다.
아주 감칠맛 나는 예제가 아닐 수 없다. :-)

GNU C의 인라인 어셈블리어는 다음과 같이 이루어져 있다.

asm("commands"
: output
: input
: registers);

asm 대신에 __asm__ 키워드를 사용해도 되며, __volatile__ 키워드
는 일단 신경 쓰지 마시기 바란다. __volatile__은 컴파일러로 하
여금 해당 구문에 대해 함부로 자의적으로 수정,해석 하지 못하도
록 하는 구실을 한다.

여기서의 분석은 자연스럽게 프로그램을 이해하기 위해서 input,
registers, commands, output 의 순서를 취할 것이다. 그리고 설명의
편의를 위해서 AT&T 문법과 INTEL 문법을 적절히 혼용하겠다. 설명중
di/edi를 di나 edi로 표기하거나 si/esi를 si, esi로 대표하여 표기
하는 경우가 종종 있다.

자, 이제 조금의 흥분되는 마음을 가라앉히고 여행을 떠나보자.

  • 첨부 파일: inlineasm.txt inlineasm.txt (91 KiB(93,553 Bytes))

    [분류: 어셈블리 인쇄용 페이지 본문 email로 보내기 ]

  • <  Unix System Programming | 어셈블리 강좌  >
    인라인 어셈블리를 분석하자 | 답장: 1개 | 본문에 답장
    정렬 :  
    답장 EzDoum 2002년 08월 10일 오후 12:57 [ 이글에 답장 | 본문에 답장 | 책갈피 ]
    GCC inline assembly guide 허태준
    http://kldp.org/KoreanDoc/html/GCC_Inline_Assembly-KLDP/index.html
    --
    걀걀걀...


    [수정]

    인라인 어셈블리를 분석하자 | 답장: 1개 | 본문에 답장
    정렬 :  

    답장 쓰기
    글을 올리시려면 로그인 (사용자 등록) 하셔야 합니다.

    검색
    Google

    분류
    ·공지 (6)
    ·인터넷 (87)
    ·하드웨어 (260)
    ·C/C++ (65)
    ·어셈블리 (7)
    ·리눅스 (136)
    ·리눅스 커널 (67)
    ·윈도우즈 (25)
    ·데이터베이스 (20)
    ·보안 (16)
    ·.NET (25)
    ·그래픽 (13)
    ·책소개 (42)
    ·호기심 천국 (80)
    ·잡담 (111)
    ·사랑 (3)

    전체 본문수: 963
    전체 답장수: 525


    분류 : 어셈블리
    최근글
    최근글
    가장 많이 읽은 글
    ·나는 인터렉티브한 환경에서 역어셈블 한다. (12)
    뜨거운 감자
    ·나는 인터렉티브한 환경에서 역어셈블 한다. (12)

    EzDoum투표
    이지도움 어때요?
    이게 뭐야. 다시 안올란다. --;
    아이 좋아라~ +_+;
    관심없다.
    먼가는 있는거 같은데 뭐하는 곳이지?
    기타 (자유게시판에 글로 남겨 주세요)
    [ 결과 | 투표 ]

    랜덤 링크
    http://kldp.net


     Home ^ BACK TO TOP ^ EzDoum - 도움이 필요하세요~??
     Powered by KorWeblog 1.5.8 Copyleft © 2001 EzDoum, 관리자: EzDoum