Calm
Calm
Calm
Exemples
La page suivante illustre la notation des instructions en CALM et
celle du fabricant pour les microprocesseurs 8080, iAPX86 et 68000.
CALM Assembleur CALM
Documentation du processeur
La documentation CALM livrée avec un processeur ne suffit pas pour
comprendre un processeur dans tous les détails. Ceci est surtout vrai
pour les microprocesseurs et microordinateurs (sur une puce) avec des
fonctions intégrées (mémoire, accès direct à la mémoire [DMA], E/S).
Il est donc presque toujours nécessaire de disposer de la
documentation correspondante du fabricant. C'est pourquoi, la
documentation CALM contient aussi des listes de comparaison.
Cartes de référence CALM
8080/8085
CALM REFERENCE CARD
8080/8085 Description
Programming Model
15 8 7 0
-----------------------------------------------------------------
A [ accumulator | N . Z . x . H . 0 . P . v . C ] F
-----------------------------------------------------------------
B [ | ] C
-----------------------------------------------------------------
D [ | ] E
-----------------------------------------------------------------
H [ | ] L
-----------------------------------------------------------------
15 0
-----------------------------------------------------------------
[ stack pointer ] SP
-----------------------------------------------------------------
[ program counter ] PC
-----------------------------------------------------------------
General
Address: 16 bit
Data: 8 bit (8085: data multiplexed with addresses A0-A7)
Abbreviations used
v 16'0, 16'8, 16'10, 16'18, 16'20, 16'28, 16'30, 16'38
r8 A B C D E H L
s8 B C D E H L
r16 BC DE HL SP
i8 {BC} {DE} {HL}
VAL8 8-bit value
VAL16 16-bit value
cc EQ NE CS CC MI PL PO PE
Remarks
- flag equalities: EQ=ZS, NE=ZC, CS=LO, CC=HS, MI=NS, PL=NC.
- Reset: IOFF
JUMP 16'0
- Interrupt: IOFF
CALL v
Additional interrupt addresses for 8085: 16'2C, 16'34, 16'3C. (8085)
- NMI: IOFF (8085)
CALL 16'24
- CALM - Intel register names: equal except: F=PSW and 16 bit names.
- CALM - Intel flag names: N=S, Z=Z, H=AC, P=P, C=C.
8080/8085 - 2
Transfer instructions
MOVE #VAL8 |,A []
VAL16 |
r8 |
i8 |
$VAL8 |
A,| VAL16
| r8
| i8
| $n
(MVI LDA MOV LDAX IN STA MOV STAX OUT)
MOVE #VAL16,r16 []
VAL16,HL
HL,VAL16
HL,SP
(LXI LHLD SHLD SPHL)
SETC [C=1]
(STC)
EX DE,HL []
{SP},HL
(XCHG XTHL)
Arithmetic instructions
ADD | #VAL8 |,A [N,Z,H,P,C]
ADDC | r8 | [N,Z,H,P,C]
SUB | {HL} | [N,Z,H,P,C]
SUBC | [N,Z,H,P,C]
COMP | [N,Z,H,P,C]
(ADI ADD ACI ADC SUI SUB SBI SBB CPI CMP)
INC | r8 [N,Z,H,P]
DEC | {HL} [N,Z,H,P]
(INR DCR)
INC | r16 []
DEC |
(INX DCX)
8080/8085 - 3
Logical instructions
AND | #VAL8 |,A [N,Z,H,P,C=0]
OR | r8 | [N,Z,H,P,C=0]
XOR | {HL} | [N,Z,H,P,C=0]
(ANA ANI ORA ORI XRA XRI)
NOT A []
NOTC [C]
(CMA CMC)
Shift instructions
RR | A [C = A:#0]
RRC | [C = A:#0]
RL | [C = A:#7]
RLC | [C = A:#7]
(RRC RAR RLC RAL)
RST v []
RST,VS 16'40 [] (U8085)
(RST RSTV) one byte call (restart)
RET,cc []
RET []
WAIT []
NOP []
ION []
IOFF []
(R- RET HLT NOP EI DI)
Special instructions
DAA A [N,Z,H,P,C]
(DAA) Decimal Adjust A, only valid after ADD and ADDC
RIM | A [] (8085)
SIM | RIM: read interrupt mask
(RIM SIM) SIM: set interrupt mask