나는 계산 된 것보다 크거나 작은 결과가 어떻게 산출되어 고위 언어로 반환되는지 궁금합니다.보다 큰/미만의 내부 작업
여기 하드웨어 게이트 모델을 찾고 있습니다.
설명하는 균일 한 예를 사용할 수 있습니다, 5 말> 3. 일반적으로 캐리 탐지과 뺄셈을 통해 구현된다
나는 계산 된 것보다 크거나 작은 결과가 어떻게 산출되어 고위 언어로 반환되는지 궁금합니다.보다 큰/미만의 내부 작업
여기 하드웨어 게이트 모델을 찾고 있습니다.
설명하는 균일 한 예를 사용할 수 있습니다, 5 말> 3. 일반적으로 캐리 탐지과 뺄셈을 통해 구현된다
. 이진수를 감산 게이팅 관점에서
은 감산기를 통해 각각의 피연산자로부터의 비트가 쌍을 통과시킴으로써 수행된다 : 인자로부터 +-----+
carry_in -->| |
| |--> a_minus_b
a -->| SUB |
| |--> carry_out
b -->| |
+-----+
a_minus_b = carry_in ⊕ a ⊕ b
carry_out = (carry_in ∧ b) ∨ (¬a ∧ (carry_in ∨ b))
비트 0 a
및 b
은 함께, 제 감산기 통과 carry_in은 0입니다. 각 인수의 비트 1은 두 번째 감산기를 통과하고 carry_in은 비트 0 스테이지의 carry_out으로 설정됩니다. 마지막에 최종 carry_out는 1 만약 < B를 보유하는 CPU의 캐리 플래그를 설정 때까지 그 결과는로가는 모든 a_minus_b 함께 OR 연산 및 니 게이트, 또한, 그렇지 않으면 0
을 체인을 계속 a = b를 나타내는 CPU 제로 플래그.
이 플래그는 if (a < b) { ... }
을 작성할 때 컴파일러가 생성 한 기계 명령어로 테스트 할 수 있습니다.
나는 독자를위한 운동으로 5> 3을 남겨 둘 것이다.
@Downvoter : 개인적으로이 질문도 마음에 들지 않습니다. 내 취향이 아니야. 하지만 그것은 분명히 공식화되었거나 프로그래밍 질문이거나, 중복이 아니기 때문에 나에게 그것을 다운 바운드 할 수있는 도덕적 권리를주지 않습니다 ... 우리가 개인적으로 싫어하는 downvoting 질문은 자제합시다. –
모든 uP/CPU에서이를 수행하는 ALU가 있습니다. 리터럴/참조를 전달하기 만하면 피연산자가 같거나 같거나 크거나 작은 플래그를 여러 개 설정합니다. – jpinto3912
당신은 누군가가 그 기계어 명령을 지원하는 전기 공학 및 하드웨어 회로를 설명하고, 하드웨어가 명령을 가져 오거나 실행하는 방법을 설명하고 적용하고, 고수준 언어 컴파일러가 기계 코드로 컴파일하는 방법을 설명하겠습니까? ? 근본적으로 저레벨의 전기 공학에서 상위 레벨의 코드와 모든 것을 연결하는 모든 것들에 이르기까지? – Loduwijk