본문 바로가기

Embedded Programming

80x86의 문자열 조작 명령어 보호되어 있는 글입니다. 더보기
시간 및 날짜 함수 보호되어 있는 글입니다. 더보기
리눅스 명령어 모음 보호되어 있는 글입니다. 더보기
80x86 Intel CPU의 레지스터 1. 범용 레지스터 (General Purpose Register) - EAX, EBX, ECX, EDX 위의 레지스터 넷은 일반적인 값이나 주소를 저장할 수 있는 레지스터로, 모두 32비트 크기이며 ABC 순으로 이름이 정해져있다.각 레지스터의 앞글자인 E는 Extended의 약자로, 80386 이후로 32비트 레지스터로 바뀌면서 앞에 E를 붙여주게 되었다. 이 범용 레지스터들은 위의 그림과 같이 32비트 크기의 EAX와 16비트의 AX, 8비트 크기의 AH, AL로 각각 접근 할 수 있다. 이 때문에 과거 80x86시리즈의 CPU와 호환이 되는 것이다. 2. 인덱스 레지스터 - ESI, EDI SI와 DI는 각각 Source Index, Destination Index의 줄임말로, 문자열을 복사할 때.. 더보기
select()를 이용한 입출력 다중화(I/O Multiplexing) 보호되어 있는 글입니다. 더보기
File Socket을 이용한 프로세스간 통신 보호되어 있는 글입니다. 더보기
Packet Analyzer로 3 way handshaking 확인하기 보호되어 있는 글입니다. 더보기
Packet Analyzer 보호되어 있는 글입니다. 더보기
리눅스 기반 서버프로그램 #include #include #include #include #include #include int main() { int servSock; int clntSock; int iRet; struct sockaddr_in echoServAddr; struct sockaddr_in echoClntAddr; unsigned short echoServPort; // server app port address unsigned int clntLen; unsigned char ucBuffer[500]; echoServPort = 9999; // 서버의 포트주소는 대부분 고정시킴 // 1. 소켓 생성 servSock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (servSoc.. 더보기
연산자 우선순위와 결합방향 연산자 우선순위란, 같은 항에서 연산자가 겹쳤을 때 어느 연산자가 가장 우선권을 갖고 먼저 처리하느냐를 정해놓은 것이다.이러한 우선순위를 굳이 달달 외울 필요는 없지만, 우선순위가 적용되어 처리되는 경우가 간간이 있으므로연산자간 우선순위가 있다는 정도만이라도 알아두면 좋을 것 같다. 순위 연산기호 연산자 결합방향 1 () 함수호출 → [] 배열 인덱스 -> 간접지정(구조체 멤버) . 직접지정(구조체 멤버) ++, -- (변수 뒤에서 증가/감소) 후위증가/감소 2 ++, -- (변수 앞에서 증가/감소) 전위증가/감소 ← sizeof 바이트 단위 크기 계산 ~ 비트단위 NOT연산 (비트 반전) ! 논리 NOT -, + 부호 연산(음수, 양수 표현) & 주소 연산 * 간접지정 연산 (포인터) 3 (자료형) 자.. 더보기