@42seoul : (2020.11.20 ~ 2020.12.01)
- ์ด ํ๋ก์ ํธ๋ ์ด์ ๋ธ๋ฆฌ ์ธ์ด๋ฅผ ๊ฐ์ง๊ณ ๋ช ๊ฐ์ง ํจ์๋ฅผ ๊ตฌํํฉ๋๋ค.(The aim of this project is to get familiar with assembly language.)
Type | Function | Description |
---|---|---|
<string.h> | ft_strlen.s | man strlen |
<string.h> | ft_strdup.s | man strdup |
<string.h> | ft_strcpy.s | man strcpy |
<string.h> | ft_strcmp.s | man strcmp |
<fcntl.h> | ft_write.s | man write |
<fcntl.h> | ft_open.s | man open |
- write, read ํจ์๋ systemcall ํธ์ถํ๊ณ error ๋ฐ์ ์ __error ํธ์ถํ์ฌ errno๋ฅผ ์ ์ฅํ๊ณ ๋๋ด์ผ ํฉ๋๋ค.
- assembly language๋ฅผ ๊ฒฝํํ ์ ์์๋ค.
- Computer-Achitecture ์คํฐ๋๋ ํจ๊ป ์งํํ๋ค.
- CPU, ๋ ์ง์คํฐ, Stack ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ดํดํ๊ฒ ๋์๊ณ read, writeํจ์๋ฅผ ๊ตฌํํ๋ฉด์ ๊ฐ๊ฐ์ ์์คํ ์ฝ ๋ฒํธ๋ฅผ ํธ์ถํ๋ฉด ์ปค๋๋ชจ๋๋ก ๋ณ๊ฒฝ ๋๋ฉฐ sys_open() ์ปค๋ ํจ์๊ฐ ํธ์ถ๋๊ณ ํจ์๊ฐ ๋๋๋ฉด ๋ค์ ์ฌ์ฉ์ ๋ชจ๋๋ก ๋ฐ๋๊ณ ๊ฒฐ๊ณผ๊ฐ ๋ฆฌํด๋๋ค. ์ด๋ ์์คํ ์ฝ์ด ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ์บ๋ฆฌํ๋๊ทธ๊ฐ ๋ฐ์๋๊ณ rax ๋ ์ง์คํฐ์ errno๊ฐ ๋ค์ด์๋ค. ์ด๊ฒ์ __error๋ฅผ ํธ์ถํ์ฌ error๋ฅผ ๋ํ๋ด๋ ๋ณ์์ rax ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋ค ์ต์ข ์ ์ผ๋ก -1์ ๋ฆฌํดํ๊ณ ์ข ๋ฃ๋๋ค.
- Level 0 ํ๋ก์ ํธ Libft์์ ๋ง๋ค์๋ ft_strlen๊ณผ Libc์ strlen ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ ์ํจํ๋๋ฐ ๊ทธ ์ด์ ๊ฐ ์ด์ ๋ธ๋ฆฌ ๋จ์์ ์ต์ ํ ๊ณผ์ ์ ๊ฑฐ์ณค๊ธฐ ๋๋ฌธ์ด์ง ์์๊น ํ๋ค.
โโโ Makefile
โโโ ft_read.s
โโโ ft_strcmp.s
โโโ ft_strcpy.s
โโโ ft_strdup.s
โโโ ft_strlen.s
โโโ ft_write.s
โโโ libasm.h
โโโ main.c