일명 폭탄랩 - Carnegie Mellon University bomblab은 카네기멜런 대학에서 진행한 유명한 어셈블리 학습 및 분석 실습입니다. 필요한 부분만 해석하여 문제를 빠르게 풀어내는 것에 초점을 두었습니다. bomblab을 처음하는 사람에게 시작을 위해 도움을 줄만한 내용은 레지스터의 용도를 알고있는 것입니다. rax레지스터는 반환 값을 담는 레지스터이고, 파라미터로 사용되는 레지스터는 rdi, rsi, rdx, rcx라는 것 rsp는 스택포인터, rbp 베이스 포인터라는 것입니다. 밤랩을 공부하면서 대충 정리했던 내용도 첨부합니다. 교내 시프템 프로그래밍 수업의 실습에 참여했고, 2등으로 실습을 마무리하였습니다. 본인은 bomb13입니다.
DataLab이란? DataLab은 Carnegie Mellon University의 컴퓨터과학 학부에서 제공하는 프로그래밍 및 컴퓨터 아키텍처 교육 리소스입니다. DataLab은 학생들에게 컴퓨터 과학 및 컴퓨터 시스템의 기본 원칙을 가르치고 이해하는 데 도움을 주기 위해 고안되었습니다. DataLab은 컴퓨터 과학 교육의 일환으로 사용되며, 컴퓨터 시스템 및 소프트웨어에 대한 깊은 이해를 개발하는 데 도움을 줍니다. 깔끔한 코드인지는 모르겠으나.. 참고만 부탁드립니다. bitNor int bitNor(int x, int y){ return ~x & ~y; } bitNor함수의 경우는 NOR연산자를 구현하는 것입니다. 여기서 조건은 '|' 연산을 제외하고 구현해야합니다. 여기서는 드모르간 법칙을 사용하..