2012-04-08 3 views
1

Im 크 누스의 책 TAOCP를 읽는 중. 그리고 저는 레지스터로 간단한 수학 연산을 배웁니다.MIX 빼기가 "포장 된"단어로 작동하는 방식

rA before: - | 1234 | 0| 0| 9 
Cell 1000: - | 2000 | 150| 0 
SUB 1000  
rA after: + | 766 | 149 | ? 

본인은 -1234 - (- 2000) = 766 하지만 어떻게 (0 | 0) - 150 = 149 ?? : 그리고 뺄셈 연산의 예는있다

왜 9 - 0 =?

"포장 된"단어입니다. 그리고 아마도 나는 그들에 대해 더 많이 읽을 필요가 있습니다. 아니면 누구든지 설명 할 수 있습니까?

답변

2

나는 논리는 다음과 같이 간다 생각 :

  • 이 MIX 기계 진수 기계; 각 바이트는 두 자리 10 진수를 보유합니다.
  • rA의 값은 - 1234 00 00 09입니다.
  • 메모리 M의 값은 - 2000 0150 00입니다.
  • 일반 십진법을 사용하여 rA에서 M을 빼면 766,014,991 또는 + 0766 0149 91이됩니다. 대안

,

  • 이 MIX 머신은 이진 시스템이고; 각 바이트는 8 개의 2 진 비트를 보유합니다.
  • rA의 값은 - 04D2 00 00 09입니다.
  • M의 값은 - 07D0 0096 00입니다. 일반 진수 산술 사용 rA에서 M 감산
  • 는 0x2FE0095F7 제공하거나 + 02FE 0095 F7 또는 소수의, + 0766 0149 247 [SIC].

따라서이 특정 MIX 시스템의 이진수/십진수를 알지 못하면 결과의 하위 바이트를 분명히 말할 수 없습니다. 의 1 바이트 표현이 보장되지만,이 값이 91 십진수 또는 0xF7 이진인지 여부는 알 수 없습니다.

지금 당장 TAOCP를 확인하지는 않지만이 로직은 당신을 당황하게하는 ?에 대한 좋은 설명이라고 생각합니다.

관련 문제