안녕하세요 월드 투어

이 문서에서는 리눅스에 한 번 무슨 일이 있었는지 실행 hello.c` 시스템`에 대해 다음을 문서화, 내용이 첫 번째 챕터의 CSAPP에서 온다.

#INCLUDE <STDIO.H> INT 본체 ( 의 INT 는 argc, CONST * 는 argv []) 
{ 
    의 printf ( " 여러분 안녕하세요 \ 없음 " );
    반환 0 ; 
}

  

이 단계는 다음과 C 언어 프로그램에서 실행할 수 있습니다 :
1. 실행 명령 행`의 gcc -o 안녕하세요 hello.c`를, 헬로 실행 파일을 생성.
`명령 줄을 입력합니다. / Hello`, 화면 출력 안녕하세요, 세계 정보를 제공합니다.

컴퓨터의 CPU는 좋은 세트에게 다음과 같은 몇 가지 작업을 실행할 수 있습니다 :

  • 로드 : 바이트 또는 CPU 레지스터에 메인 메모리에서 복사 단어
  • 스토리지 : 바이트 또는 주 메모리 내의 위치로 CPU 레지스터에서 복사 단어
  • 작업 : ALU CPU의 산술 논리 장치에 두 레지스터의 내용을 복사,이 말은 ALU 연산을하고 레지스터에 결과를 저장
  • 이동 : 원래 값을 커버하기 위해 프로그램 카운터 (PC)에 복사 명령에서 단어를 추출하는 단계를 포함한다.

이러한 작업은 C 언어 프로그램이 기계 언어 명령어로 C 언어 코드를 변환 할 필요가 실행해야합니다, 미리 좋은 기계 언어 명령어는 CPU뿐만 아니라 기계 언어 지침을 제공하고 운영 대응하고, CPU에.

GCC의 컴파일러 드라이버의 첫 번째 단계는 시스템에 의해 컴파일 된 소스 파일은 기계어 실행 파일로 번역하기 위해 읽습니다.
커맨드 라인 입력의 두 번째 단계는 "여보세요"문자는 하나 하나가 CPU의 레지스터에 판독하고 메인 메모리에 저장한다 ; 키보드 캐리지가 명령 라인 쉘 운영 체제 명령에 의해 호출 될 때 실행 파일이 실행 파일을 호출 할 때, 파일이 처음 안녕하세요, 제 1 주 메모리로 디스크에서 복사하고 명령 파일 안녕하세요 열한 읽고 CPU에 의해 실행됩니다 , 마지막으로 CPU에서 "안녕, 세계"문자열 생성 등록 화면의 메인 메모리 및 출력에 복사된다.

추천

출처www.cnblogs.com/ysfdm/p/11443338.html