어셈블리어(2)
-
[어셈블리어] 리눅스 64비트 환경에서 32비트 프로그램 컴파일하기
컴퓨터가 점점 발전해감에 따라 레지스터도 발전하게 되었습니다. 또한 프로그래밍을 할 때 사용하는 레지스터의 구성도 다르답니다. 아래의 표와 같이 말이죠. 64-bit register Lower 32 bits Lower 16 bits Lower 8 bits rax eax ax al rbx ebx bx bl rcx ecx cx cl rdx edx dx dl rsi esi si sil rdi edi di dil rbp ebp bp bpl rsp esp sp spl r8 r8d r8w r8b r9 r9d r9w r9b r10 r10d r10w r10b r11 r11d r11w r11b r12 r12d r12w r12b r13 r13d r13w r13b r14 r14d r14w r14b r15 r15d r15w ..
2020.01.29 -
[어셈블리어] 백준 2557번 Hello World 런타임 오류 해결법
백준 2557번을 어셈블리어로 풀다가 런타임 오류가 떠서 들어오신 분들은 어셈블리어에 대해 어느정도는 숙지하고 계실 거라 생각해요. 2557번에 대한 설명을 원하시는 분들은 뒤로가기를 누르셔도 됩니다.. (죄송합니다 ㅠㅠ) 제 생각에 자신의 컴퓨터에서는 돌아가는데 백준 온라인 채점에서 막히는 사람이 있을거라 생각해요. 만약 아래와 같은 컴파일 오류가 뜬다면, /usr/lib/../lib32/crt1.o: In function `_start': (.text+0x18): undefined reference to `main' collect2: error: ld returned 1 exit status 메인 함수의 이름을 main으로 하지 않았을 확률이 높아요. 한번 section .text 부분을 global..
2020.01.29