FSTWikiRev. 1.4 김도집/Assembly
Login:
Password:
Join
U E D R S I H P RSS
FrontPage|FindPage|TitleIndex|RecentChanges

Linux Assembly

--김도집 (2006.1.)

Contents

1 Assembly Code
2 Inline Assembly

1 Assembly Code #

.ifdef xxx
.else
.endif

.align 5

.equ xxx,0x000000000

.include "xxx.inc"

.text

.macro xxx,val
   mov r0, \val
.endm

.glbl xxx

2 Inline Assembly #

다음은 인라인 어셈블리의 한 예이다.
__asm__ __volatile__ ("\n\
  mrc p6, 0, r1, c1, c, 0     @ Read out ICMR\n\
  and r1, r1, %0              \n\
  mcr p6, 0, r1, c1, c0, 0    @ Write back"
  :
  :"r"(temp)
  :"r1");

위에서 보는 바와 같이 인라인 어셈블리의 형식은 다음과 같다.
__asm__ __volatile__(어셈블리 문장 : 출력 : 입력 : 변경된 레지스터);

__volatile__의 경우엔 생략이 가능하나 컴파일러의 임의 변경을 막고자 한다면 넣어야 한다.

출력, 입력, 변경된 레지스터 등에는 어떤 값도 들어가지 않을 수도 있다. 반대로 하나 이상의 값이 필요하다면 컴마(,)로 구분하면 된다.

last modified 2006-03-08 08:21:45
ShowPage|FindPage|DeletePage|LikePages Valid XHTML 1.0! Valid CSS! powered by MoniWiki
0.1396 sec