Z80 : 16 및 8 비트 레지스터를 추가하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2247906

  •  20-09-2019
  •  | 
  •  

문제

Carry (예 : HL 및 A)에 16 및 8 비트 레지스터를 어떻게 추가합니까?

도움이 되었습니까?

해결책

직접 할 수 없습니다. A를 16 비트 레지스터 쌍에 복사 한 다음 추가를 수행해야합니다.

LD  B, 0
LD  C, A
ADC HL, BC

다른 팁

나는 검사 된 응답 (Carl Norum의)이 정확하지만 최상의 답은 아니라고 지적하고 싶습니다. 다음은 시계 사이클로 두 가지 전략의 속도를 보여줍니다. 올바른 솔루션을 사용하면 시간이 절약되며 두 번째 16 비트 레지스터 쌍이 파괴되지 않습니다.

  4   ld c,a            4   add a,l
  7   ld b,0            4   ld l,a
  11  add hl,bc         4   adc a,h
                        4   sub l
                        4   ld h,a

그러나 오른쪽의 솔루션은 추가 바이트의 코드를 사용합니다.

에서 http://nemesis.lonestar.org/computers/tandy/software/apps/m4/qd/opcodes.html

Add Byte with Carry-In Instructions
8080 Mnemonic Z80 Mnemonic  Machine Code Operation
ADC  M        ADC A,(HL)    8E           A <- A + (HL) + Carry
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top