IT/Computer Science

    부동 소수점 (Floating Point) 이해하기

    실수 연산의 오류 Java에서 아래와 같은 code를 작성해 보자. public static void main(String []args){ // #1. 0.3 - 0.1 System.out.println(0.3 - 0.1); // #2. 0.1 1000번 더하기 double sum = 0; for(int i=0; i

    [Logic Gate] 4-bit 가감산기로 Status Register (상태 레지스터) 이해하기

    이전 글 2020/07/04 - [IT/컴퓨터 시스템 개론] - [Logic Gate] 4bit 가산기, 가감산기 Status Register CPU에는 Instruction 결과의 상태를 알려주는 상태 레지스터가 있다. 상태 레지스터에는 대표적으로 아래의 flag bit들이 모여있다. N (Negative) : 연산 결과가 음수인 경우 참 Z (Zero) : 연산 결과가 0인 경우 참 V (Overflow) : 연산 결과가 표현될 수 있는 비트 범위를 넘긴 경우 참 C (Carry) : 연산 결과가 최상위 비트(MSB)에서 그 위의 비트로 비트 범위를 넘어서 자리올림이 발생하는 경우 참 Overflow vs Carry Overflow와 Carry를 종종 헷갈려하는 경우가 있어 둘의 차이점을 설명하자면,..

    [Logic Gate] 4bit 가산기, 가감산기

    이전 글 2020/06/29 - [IT/컴퓨터 시스템 개론] - [Logic Gate] 반가산기(Half-adder), 전가산기(Full-adder) 4-bit 가산기 (4-bit Ripple Carry Adder) 이전 글에서 전가산기의 경우 올림수(carry)를 포함하여 연산하기 때문에 n자릿수의 이진수 연산이 가능하다고 하였다. 이를 이용하여 4bit 이진수의 덧셈을 연산할 수 있는 4-bit 가산기를 만들어보자. 개요 4개의 전가산기(FA, Full Adder)에 각각의 이진수 자릿수의 값과 이전 자릿수 연산에서 발생한 올림 값(Carry)이 입력되는 것을 볼 수 있다. 가장 오른쪽에 위치한 첫 번째 자릿수의 전가산기에는 0이 입력된다. (이전의 자리 올림수가 없기 때문) 논리회로 4-bit 가산..

    [Logic Gate] 반가산기(Half-adder), 전가산기(Full-adder)

    반가산기 (Half Adder) 가산기란 덧셈 연산을 수행하기 위한 논리회로이다. 반가산기는 한 자릿수 이진수를 연산하고, 자리올림수는 carry로 출력한다. 논리식 Carry = A∙B Sum = A'B + AB' = A⊕B 논리회로 진리표 Inputs Outputs A B Sum Carry 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 전가산기 (Full Adder) 전가산기는 하위의 자리올림수(Ci, Carry in) 입력을 포함하여 한 자릿수 이진수를 연산한다. 두 개의 반가산기와 한 개의 OR연산으로 구성되며, Ci 1bit와 피연산자 2bit 총 3개의 bit를 더하여 합(S, Sum)과 자리올림수(Co, Carry out)을 출력한다. 하위의 자리올림수를 포함하여 연산하므로 n자릿..

    [Pep/8] 기계어, 어셈블리어 프로그래밍 기초

    기계어로 "Hi" 출력하기 1. 기계어 코드 작성 아래와 같이 Hi를 출력하는 코드를 작성한다 Hex code Binary Code Explain 51 00 07 01010001 00000000 00000111 7번지, 8번지의 값을 출력 - opcode : 01010 (char output) - addrmode : 001 (direct mode) 51 00 08 01010001 00000000 00001000 00 00000000 Stop 48 69 01001000 01101001 7번지, 8번지에 'H', 'i'를 ASCII Code(72, 105) 값으로 입력 2. Load 메모리에 code를 load 한다 (Ctrl+Shift+L) 0번지 ~ 8번지에 데이터가 정확히 들어간 것을 확인할 수 있다...