choongmin   2년 전

이유는 모르겠지만 어셈블리로 짜고 gcc로 링크한 것이 그냥 C로 짠 것보다 메모리 사용량이 많게 나옵니다.

아래처럼 gcc 대신 그냥 ld를 쓰는 건 어떨까요.

nasm -f elf -o Main.o Main.asm && ld -o Main Main.o

이름은 Assembly (hardcore) 뭐 이정도로 하구요. 다만 이게 동작하려면 지금 막혀있는 것으로 보이는 exit 시스템 콜을 허용해야 합니다.

baekjoon   2년 전

ld를 안 쓴 이유가 도저히 입출력을 못하겠어서였는데... 어떻게 하면 입출력할 수 있나요?

choongmin   2년 전

당연히 C 라이브러리를 쓰는 것보단 훨씬 어렵지만 불가능하진 않다고 봅니다. atoi, itoa를 직접 구현하고 read랑 write 시스템콜 쓰면 되지 않나요?

choongmin   2년 전

1000번 소스입니다. 여기서 main을 _start로 바꾸고 main에서 리턴하는 대신 exit 시스템 콜을 쓰면 ld로 링크해서 실행 가능합니다.

https://www.acmicpc.net/coding/view/5452

댓글을 작성하려면 로그인해야 합니다.