컴퓨터과학/시스템프로그래밍
-
[C] Integer Promotion(암시적 형변환) - "char to unsigned int"컴퓨터과학/시스템프로그래밍 2022. 10. 19. 01:10
In C, integers of smaller types(char, short) are automatically promoted to integers before evaluated. C언어에서는 int(4byte)보다 작은 정수형 자료형들(char, short)이 사용(evaluated)되기 전에, 미리 int형(4byte)크기만큼 늘어난다. 늘어나는 과정에서는 sign extension이 발생한다. 여기서 사용(evaluate)이란, printf와 같은 출력 명령이나 ==와 같은 비교연산 등에 해당 자료형들이 이용되는 경우를 말한다. 위의 코드에서 변수 c는 char형으로 1byte(8bit)의 크기를 갖는다. 위의 0xff는 16진수로, 2진수로 바꾸면 1111 1111이 된다. i = (unsign..
-
[Assembly] movslq 명령어(movslq instruction)컴퓨터과학/시스템프로그래밍 2022. 10. 18. 16:49
movslq src, dest src의 32비트(4바이트)의 데이터를 sign-extension하여 64비트(8바이트)로 만든 뒤, dest로 이동(mov)시킨다. 1바이트를 2바이트로 sign extension하는 예시: 1000 0000 -> 1111 1111 1000 0000 (MSB(제일 왼쪽 비트) 1로 sign-extension) 0000 0000 -> 0000 0000 0000 0000 (MSB(제일 왼쪽 비트) 0으로 sign-extension)