함수호출규약

    [ASM] 64bit 환경에서의 레지스터와 리눅스 함수 호출 규약

    libasm은 맥 OS 64bit 환경에서 인텔 어셈블리를 이용하여 진행되기 때문에, 이를 기준으로 정리하였습니다. 범용 레지스터 우선, 16bit의 레지스터는 각 레지스터 이름의 약자로 이루어져 있습니다(ex. AX = accumulator register). 여기서 32bit 레지스터들은 앞에 E(extended) 문자가 추가되고, 64bit는 R문자가 추가됩니다. 64bit 환경에서는 아래의 레지스터들 외에, r8~r15의 레지스터 8개를 추가로 가집니다 레지스터 accumulator base counter data stack pointer stack base pointer src dest 16bit AX BX CX DX SP BP SI DI 32bit EAX EBX ECX EDX ESP EBP E..