반응형

전체 글 72

[시스템프로그래밍] Assembly Languege 2

leaq src, destdest에 src에 해당하는 주소 계산식의 결과를 저장src는 x + ky 형태 표현에 유리long m12(long x) return x*12;leaq (%rdi, %rdi, 2), %raxsalq $2, %rax위의 함수는 아래와 같은 어셈블리어로 변환될 수 있음 salq src, destdest = dest 오른쪽을 0으로 채움sarq src, destdest = dest >> srcsign bit 유지shrq src, destdest = dest >> src0으로 채움xorq src, destdest = dest ^ src and src, destdest = dest & src orq src, destdest = dest | src Condition code최근 연산에 대..

[시스템프로그래밍] Assembly Languege 1

Registerrsp는 함수 스택관리에 사용되어 범용으로는 사용불가 movq Source, Dest데이터를 이동시킴 Immediate : 상수 값앞에 '$'를 붙임Register : 16개의 정수 레지스터앞에 '%'Memory : 레지스터가 가리키는 메모리주소 8바이트 괄호로 감쌈 memory -> memory는 불가능 레지스터로 처리가 가능하면 굳이 메모리 할당을 하지 않음(변수 선언 등에서) 메모리 주소 지정 방식D(Rb, Ri, S) = Mem[Rb + Ri * S + D]D : 1,2,4 바이트 정수 변위 (상수)Rb : base registerRi : index registerS : 가중치 (1,2,4,8) $rdx = 0xf000 일때0x80 (%rdx) = 0xf080 addq src, de..

[시스템 프로그래밍] Signal Programming

int kill(pid_t pid, int sig)프로세스에 시그널을 보냄성공하면 0, 실패하면 -1 반환 sighandler_t signal(int signum, sighandler_t handler)signal handler를 등록기존의 핸들러를 반환함SIGKILL, SIGSTOP은 변경 불가능 (컴파일은 가능, 비정상 종료) int pause(void)시그널이 도착할 때까지 대기 프로세스가 시그널을 받아서 핸들러를 실행시키는 동안 프로세스는 멈춰있음 (함수를 사용할 때처럼)-> 핸들러는 가벼워야함 Standard signalsSIGHUP ~ SIGSYS : 1~31우선순위가 없음queuing되지 않음 Real-time signalsSIGRTMIN ~ SIGRTMAX낮은 숫자의 signal이 우선순위..

반응형