나는 6502 시스템에 대해 다음 코드를 사용하여 몇 가지 문제가 있습니다 :6502 간접 주소 문제
이C000 LDA #$00
C002 STA $FE
C004 LDA #$20
C006 STA $FF
C008 LDY #$08
C00A LDX #$00
C00C DEY
C00D CPY #$FF
C00F BEQ $C01B
C011 LDA ($FE),Y
C013 CMP #$2F
C015 BPL $C00C
C017 INX
C018 JMP $C00C
C01B BRK
운동은 2, 1, 4는 주소 2000로 시작하는 번호를 저장하고 무슨 말을하는 것입니다 A, X와 Y의 값
내 펜과 종이와 코드 그러나 나는 다음과 같은 이유로 C011에 붙어있어이 "실행"하고있어:
LDA ($FE),Y
이건의 값에서로드에 저장 이 방법으로 계산 된 메모리 주소 :
$FE
값을 선택- Y의 값을 추가 (즉, 제 00 임) (제 1 반복에서 그 7) 지금 07 에 저장된 값으로 07
- 로드 A를 가지고
이 정보가 맞습니까? 내가 놓친 게 있니? 내가 아닌 경우 2000
2001
및 2002
에 저장된 값은 어디에서 사용합니까? 미리
감사 ..
그래, 알아. 사실은 "$ 2000"부터 시작하는 내 배지 번호 (16 진수 값으로 intepreted)의 최하위 바이트를로드하도록 요청되었습니다. 내 번호는 0648214이므로'$ 2000','82 '2002 년''$ 2001',''$''에서''$''(2004 년'$ 2003'에서 '$ 2007'까지의 가치에 대해서는 전혀 몰랐습니다. 나는 가상 머신에 메모리를 여러 번 버렸고, 값은 모두 0이고, 항상 바보 같다고 느낀다. – magicleon
어리 석음이 필요 없다. -) 어셈블리는 매우 매혹적이다. 어쨌든, 가상 머신을 사용하여 초기 메모리 상태를 기록하면 좋겠지 만 어떤 경우에는 메모리가 0으로 미리 설정되어있는 것처럼 들리지만 (실제 머신에서는 반드시 그런 것은 아닙니다) 모든 위치 값> $ 2F가 트리거됩니다 귀하의 코드에있는 INX –
여기에 상황이 있습니다 : [image] (https://s33.postimg.org/ljzrvqk9r/image.png) – magicleon