나는 다음과 같은 코드 START 주소 "0000"에있는 경우 START: .ADDR ADDR_1
.ADDR ADDR_2
ADDR_1: LD A,B
XOR A
LD B, A
ADDR_2: JP ADDR_3
ADDR3_:....
나는 일이 ".ADDR"지시문 레이블의 주소를 나타내고있다 (즉, .ADDR ADDR_1
my homebrew Z80 Computer 코드를 작성하는 데 Visual Studio Code를 사용하고 싶습니다. z88dk 및 해당 도구를 사용하여 C를 컴파일하고 Z80 asm 파일 등을 어셈블합니다. 어셈블러 및 C의 다른 부분에 부품을 쓸 것이며 .m4 파일을 편집해야합니다. 이러한 파일 형식에 구문 색칠 기능이 있으면 좋을 것입니다. 전 완전
최근에 다른 것들 중에서 프로그램 내부에 무언가를 저장하는 것과 같은 멋진 16 진수 코드에 대해 읽었습니다. 이 코드를 내 (ti 84+) 기본 코딩에 통합하는 방법은 별도의 프로그램을 사용하고 원래 프로그램에서 "호출"(ASM (prgrmNAME))하는 것입니다. 문제는 가끔 원래 프로그램으로 돌아가고 싶지만 일단 AMSprgrm을 사용하면 기본 코딩을
안녕하세요 저는 Game Boy의 에뮬레이터를 작성하고 있습니다. 그리고 a = 0x90 주어진 SUB a, 0x92
intruction SUB와 사투를 벌인거야. 내가 뭐하는 거지 것은 : 0x90 + (-0x92)
나는 빼기 위해 2 보수 방법을 사용합니다. -0x92 <=>
2_complement(0x92) <=>
2_complement(1
http://zxm.speccy.cz/data/Z80%20Bits.html#2.2 입력 : HL = 배당, C = 제수, A = 0 출력 : HL = 지수, A = 나머지 add hl,hl ; unroll 16 times
rla ; ...
cp c ; ...
jr c,$+4 ; ...
sub c ; ...
inc l ; ...
나는
Z80 NMI 인터럽트 (0x66)를 수집 할 수있는 부분부터 NMI 핀의 가장자리 감지에서 트리거됩니다. NMI 처리기 코드 안에 아직 RETN이 실행되지 않은 상태에서 다른 가장자리가 감지되면 어떻게됩니까? NMI가 재진입 중이며 Z80이 현재 주소를 스택에 넣고 0x66에서 다시 시작하겠습니까?
저는 Z80 어셈블리를 사용하여 게임 보이 프로그래밍을 실험하기 시작했습니다. 그러나 나는 이상한 것을 발견했습니다. 나는 지연을 만드는 데 사용되는 코드의 조각을 발견 simpleDelay:
dec bc
ld a,b
or c
jr nz, simpleDelay
ret
그와 함께 주위를 연주하는 동안, 나는 작성하는 dec 기원전 두 번 지연을
에 대한 BCD 빼기 프로그램이 프로그램은 책 Programming the Z80에서 가져온 것입니다.이 프로그램은 x 바이트 BCD 빼기를 수행합니다. x는 일 수 있으며 두 피연산자의 바이트를 계산하여 실행합니다 결과적으로 루프를 통해 빼기 명령을 내리 겠지만, 여기서는 두 숫자가 동일한 바이트 수를 가진다고 가정합니다.이 숫자는 COUNT이라고합니다.