Visual Studio를 설치했는데 WinDbg가 없을 때

환경 Windows 10 Redstone 1, Visual Studio 2017 문제 WinDbg는 찾아도 안나오고... 그래서 설치하려고 하면 이미 SDK가 있다면서 날 화나게 하고... 해결 '프로그램 추가/제거' [Read More]

CS:APP - 기계어, 부동소수점

이 내용 이전에 gdb 사용법, 버퍼 오버플로, 메모리 보호기법, 가변 크기 스택프레임에 대한 내용이 있었다. 그런데 글로 정리하려니 잘 안되서 그냥 생략하고 부동소수점 [Read More]

CS:APP - 기계어, 배열과 정렬

1. 배열과 포인터 연산 배열에 대한 포인터 연산은 다음과 같은 어셈블리 코드로 구현된다. Expression Type Value Assembly code E int * x movl %rdx, %rax E[0] int M[x] movl (%rdx), %eax E[i] int M[x + 4i] movl (%rdx, %rcx, 4), %eax &E[2] int * x + [Read More]

CS:APP - 기계어, 프로시저

오늘은 프로시저(Procedure)에 대해 정리한다. 먼저 프로시저에 대해 알아보자. 나는 프로시저는 인자를 받을 수 있고 값을 리턴할 수 있는 코드 블럭(특정 [Read More]

CS:APP - 기계어, 제어문

오늘은 제어문 1. 조건 코드 CF: Carry flag. 가장 최근 연산에서 가장 중요한 비트의 올림 발생 표시. ZF: Zero flag. 가장 최근 연산의 결과가 0인 것을 표시. SF: Sign flag. 가장 최근 연산이 음수인 [Read More]

CS:APP - 기계어, 정수 연산

정수 산술연산과 관련된 인스트럭션 정리. 1. 정수의 산술연산 Instruction Effect Description leaq S, D D <- &S Load effective address inc D D <- D + 1 Increment dec D D <- D - 1 Decrement neg D D <- -D Negate not D D <- -D Complement add S, D D [Read More]

CS:APP - 기계어, 정수

amd x86-64 기준, 프로그램의 기계수준 표현에 대해서 알아본다. 이 글에서 정리한 것은 word, 정수 레지스터, att형식 operand 읽는 법, 그리고 mov 인스트럭션이다. 1. C 자료형의 [Read More]

CS:APP - 정보, 정수 오버플로

정수 산술연산 중에서도 오버플로에 대해서 정리한다. 1. unsigned 덧셈에서 overflow \(0 \le x, y \lt 2^w\)인 \(x\), \(y\)에 대해서 다음이 성립한다. \(w\)는 bit 수다. \[ [Read More]

CS:APP - 정보, 정수 형변환

중요한 것 중에서도 글로 적기 쉬운 것만 적음 1. signed와 unsigned 간의 변환 C에서 signed와 unsigned 간의 캐스팅은 어떻게 될까? 한가지만 명심하자. 비트상의 데이터 [Read More]

CS:APP - 정보, 저장

2.1 정보의 저장 2.1.1 16진수 표시 2진수를 16진수로 바꿀 때, 4비트씩 쪼개서 변환하면 편하다. "숫자 to hex"를 검색하면 헥스값을 바로 [Read More]