본문 바로가기

전체 글

(38)
소수 출력하는 코드 정말 랜만에 c언어 코드 게시물을 올린다. 지금 올리는 이유는 조회수가 잘나오고 이 글을 쓰는 지금 잠이 안오고 기본에 충실해질 필요도 있다는것을 느꼈기 때문이다!! 하하하하 코드를 먼저 보도록 하자. #include int main() { int a=0; for(int n=2; n
어셈블리어 문법 ※이 글은 철저히 INTEL cpu에서 사용하는 어셈블리어를 기준으로 서술한 글입니다!! 원래는 처음에 문법을 서술하는게 맞지만, 이건 너무 어려워서 코드를 보고봐야 이해할 수 있을것 같다. (물론 이거 내 기준) 코드 한줄을 보고 시작하자. mov rax, 1 어셈블리어는 코드를 opcode operand1, operand2로 서술할 수 있다. 여기서 opcode는 연산자를 의미하고(더하기 빼기 나누기 곱하기) operand는 연산을 당하는 피연산자를 의미한다. (3+5에서 '+'가 연산자/ '3', '5'가 피연산자) 그러니까 여기서 opcode는 mov이고 operand는 rax와 1이 된다. rax는 후문에 서술할 레지스터 중 1개이다. 여기까지는 INTEL이나 AT&T 둘다 똑같다.(아마..?)..
칼리리눅스 어셈블리어 코드 작성 하하하 정말 오랜만에 게시하는 어셈블리어 게시물인것 같다. 요즘 어셈블리어 공부의 중요성을 뼈저리게 느끼고 있다. 그래서 다시 작성을 시작해보려한다!하하하 정말 웃긴걸? *지난 게시물과 다르게 변동된 사항이 있다! 역어셈블러: SASM->NASM 야호! 오늘은 개발환경이 바뀌고 처음으로 코드를 작성한 날이다. 하하하 먼저, 칼리리눅스에 nasm을 깔아주자 (만약 자신이 이미 슈퍼유저 권한이 있다면 굳이 sudo를 붙일 필요는 없다.) *sudo: super user do 그리고 편집기를 이용하여 확장자가 .s인 어셈블리어 파일을 만들어주도록 하자. 오늘은 사용방법을 알려주는거니까 예시로 helloworld.s를 간단히 작성하고 만들어보도록 하겠다. 이렇게 작성을 하고 저장후 나가면 helloworld를 ..