[NASM Assembly x64] 외부 C언어 라이브러리 사용하기


[NASM Assembly x64] 외부 C언어 라이브러리 사용하기

실습 장소 환경 Nasm v2.15.05 x86 on Linux Windows 11 WSL Ubuntu 22.04 목표: 어셈블리어 코드에서 외부 C언어 라이브러리를 사용하여 보다 편리하게 프로그래밍 하기 이번에는 어셈블리어로 외부 C언어 라이브러리를 사용해보겠습니다. 지금까지는 오로지 리눅스 커널에서 제공하는 system call만 사용했습니다. 즉, 어떤 문장을 출력하고자 한다면 WRITE()라고 하는 전용 system call을 호출했지요. 그 전에 레지스터에 순서대로 해당 CPU에 맞는 호출 규약을 사용하여 레지스터에 적절한 인수나 주소를 대입했던 것은 덤입니다. 그러나, 이렇게 출력을 하게 되는 경우, 길이를 일일이 지정해야 하고, "%s"같은 형식 지정자를 사용할 수 없으며, 숫자나 문자간 상호 처리가 매우 어렵고 번거롭다는 단점이 존재했습니다. 즉, C언어에서 이렇게 형식 지정자를 활용하여 한 줄이면 될 것을, printf("%s\n", message); 어셈블리어에서 ...


#Assembly #예제 #어셈블리어 #어셈블리 #실습 #쉬운설명 #리버싱 #리버스프로그래밍 #x64 #SYSV #printf #NASM #gcc_multilib #GCC #CPU #cmp #Clang #C #프로그래밍

원문링크 : [NASM Assembly x64] 외부 C언어 라이브러리 사용하기