PDP11 портирование с Z80: различия между версиями

Материал из Emuverse
(категория)
Нет описания правки
Строка 15: Строка 15:
Типичные команды:
Типичные команды:
<pre>
<pre>
JP addr      JMP addr
JR addr      BR addr / JMP addr
JR addr      BR addr / JMP addr
JR C, addr    BLO addr
JR C, addr    BLO addr
Строка 25: Строка 27:
SRL xx        ASR xx
SRL xx        ASR xx


PUSH rr      MOV rr,-(SP)
PUSH rr      MOV rr, -(SP)
POP rr        MOV (SP)+,rr
POP rr        MOV (SP)+, rr
 
RET          RETURN
</pre>
 
Проверка бит:
<pre>
BIT 0,A      BIT #1, R0
BIT 1,A      BIT #2, R0
BIT 2,A      BIT #4, R0
BIT 3,A      BIT #8., R0
BIT 4,A      BIT #16., R0
BIT 5,A      BIT #32., R0
BIT 6,A      BIT #64., R0
BIT 7,A      BIT #128., R0
</pre>
 
DJNZ:
<pre>
1$:
...
SOB R1, 1$
</pre>
</pre>



Версия от 13:17, 30 марта 2024

Этот документ создан для Emuverse и распространяется на условиях лицензии CC-BY-SA-3.0.

Маппинг регистров и команд при портировании с процессора Z80 на PDP-11.

Маппинг регистров:

A       R0
BC      R1
DE      R2
HL      R3
IX      R4
IY      R5

Типичные команды:

JP addr       JMP addr

JR addr       BR addr / JMP addr
JR C, addr    BLO addr
JR NC, addr   BHIS addr
JR Z, addr    BEQ addr
JR NZ, addr   BNE addr

CP $xx        CMP R0, #xx / CMPB R0, #xx

SRL xx        ASR xx

PUSH rr       MOV rr, -(SP)
POP rr        MOV (SP)+, rr

RET           RETURN

Проверка бит:

BIT 0,A       BIT #1, R0
BIT 1,A       BIT #2, R0
BIT 2,A       BIT #4, R0
BIT 3,A       BIT #8., R0
BIT 4,A       BIT #16., R0
BIT 5,A       BIT #32., R0
BIT 6,A       BIT #64., R0
BIT 7,A       BIT #128., R0

DJNZ:

1$:
	...
	SOB	R1, 1$

LDIR:

	MOV	#LDB05, R3		; 97DF	LD HL,$DB05	
	MOV	#LEB00, R2		; 97E2	LD DE,$EB00	
	MOV	#4096., R1		; 97E5	LD BC,$1000	
1$:	MOVB	(R3)+, (R2)+		; 97E8	LDIR
	SOB	R1, 1$

EX DE,HL -- через регистр R5, который обычно не занят:

	MOV	R3, R5		; A1A9	EX DE,HL	
	MOV	R2, R3
	MOV	R5, R2