Z80 : 16 및 8 비트 레지스터를 추가하는 방법은 무엇입니까?
문제
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
제휴하지 않습니다 StackOverflow