2012-07-17 2 views
0

필자가 머리를 감쌀 수없는 것은 컴퓨터에 입력하고 화면에서 읽은 것이 컴퓨터가 활용하고 실행할 수있는 것으로 변한 것입니다. 어셈블리와 같은 언어 중 가장 낮은 언어에서도 "어셈블리는 고급 언어와 실제 기계 코드 자체 사이의 다리"라고 읽었습니다. 그러나 실제로 어떻게 작동합니까? 컴퓨터가 높은 신호와 낮은 신호에서만 작동 할 수 있다면 문자 숫자와 기호로 작동하는 컴파일러를 어떻게 작성할 수 있습니까? 어떻게 이러한 코드 문자열이 실제로 트랜지스터 게이트를 통해 발생하는 고저 신호를 발생 시키는가? 키를 입력 할 때, 사실 그것은 일련의 신호가 컴퓨터의 회로 중 어딘가에 레지스터에 저장되어 있습니까? 그 문자에 대한 신호를 화면에 보내거나 키를 누를 때 걸리는 과정이 완전히 분리 된 것입니까?어셈블리 코드에서 기계 코드로의 이동

+0

프로세서 아키텍처로 시작하십시오. 당신이 알고 싶어하는 것처럼 보이기 때문에 프로세서를 통해 흐르는 높은 신호와 낮은 신호가 어떻게 일어나는가하는 것입니다. – TheZ

+2

이것은 광범위한 질문이며 프로그래밍이 아닌 전기 엔지니어링입니다. 이해가 아주 초보적인 것처럼 보이기 때문에 * 매우 간단한 프로세서로 시작하고 싶을 것입니다. 또한 실제로는 하나의 w/o를 너무 어렵게 (결국) 설계하고 실행할 수 있기 때문에 간단한 FPGA CPU를 볼 수도 있습니다. –

+0

Petzold가 책 "코드"를 가져옵니다. http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319/ref=sr_1_1?ie=UTF8&qid=1342586531&sr=8-1&keywords=petzold+code 무거운 전기 공학 학위를 대체 할 수 없습니다. 물리학 플러스 컴퓨터 과학 및 기타 년간의 가치 연구 및 현장 경험을 이해하는 데 필요한 정말 모든 측면. 그러나 적어도 컴퓨터로 할 수있는 일이없는 무언가에서부터 기본적인 구성 요소로 당신을 데려갑니다. –

답변

2

당신은 실제로 내가 어셈블리로 탐구 좋을 것 ..이 질문에 (관련이기는하지만)

을 많이 물었다. 프로세서는 "기계 코드"라고하는 무언가에 대해 작동합니다. 실제로 "숫자 0x1234 0x001A 0x0002"는 "레지스터 X의 내용에 2를 더한"을 의미 할 수 있습니다. 대부분의 어셈블리 명령어는 직접 머신 코드로 변환되므로 프로세서가 명령어를 하나씩 어떻게 실행하는지 느낄 수 있습니다. 그 후에 더 나아가 프로세서 아키텍처에 대한 정보를 얻을 수 있습니다 (TheZ에서 제안한대로). 여기서 머신 코드 명령어가 어떻게 서로 다른 트랜지스터로 전환되고 비트가 저장되는지 배우게됩니다.

CPU에는 "인터럽트"라고하는 항목이 있는데, 이는 매우 단순하게 말합니다. 키보드는 고전압을 출력하고, CPU는 처리를 위해 특정 서브 루틴을 실행하도록 트리거된다. 키 누르기. 이 인터럽트에서 화면에 나타나는 글자에 이르기까지 여전히 꽤 여행 중입니다.

단지 혼란 스러울뿐 아니라 단계적으로 배우십시오.

관련 문제