* * * Z80 SIMULATION v3.00 (Freeware) * * *
Esempi di Programmazione

ESEMPIO 1

Il programma che segue effettua la moltiplicazione di due numeri a 8 bit in complemento a 2. I numeri possono essere compresi tra -128 e 127 ed il il risultato sarà espresso da un valore a 16 bit sempre in complemento a 2.

;**************************
; MOLTIPLICAZIONE 8X8 BIT

; H <-- MOLTIPLICATORE

; E <-- MOLTIPLICANDO

; PRODOTTO --> HL ;
;**********************************

XOR A

LD C,A

OR H

JP P,NONEG1

NEG

LD H,A

SCF

RL C

NONEG1 XOR A

OR E

JP P,NONEG2

NEG

LD E,A

SCF

RL C

NONEG2 CALL MULT

XOR A

OR C

JP PE,FINE

PUSH HL

POP DE

LD HL,#0000

SBC HL,DE

FINE HALT

;..........................

; ROUTINE DI MOLTIPLICAZIONE ;

; DI INTERI POSITIVI ;

;.........................;

LENGTH EQU 8

MULT LD B,LENGTH

LD L,0

LD D,L

LOOP ADD HL,HL

JR NC,NOADD

ADD HL,DE

NOADD DJNZ LOOP

RET

ESEMPIO 2

Il programma che segue effettua la divisione tra 2 numeri positivi. Il dividendo è un numero a 16 bit (registro HL) mentre il divisore è un numero a 8 bit (registro C). Il quoziente a 16 bit viene memorizzato al termine del programma in HL mentre il resto a 8 bit nell'accumulatore.

;*************************************
; ROUTINE DI DIVISIONE FRA ;

; NUMERI NATURALI ;

; HL DIVIDENDO ;

; C DIVISORE ;

; ------------------------------------------- ;

; HL QUOZIENTE ;

; A RESTO ;
;*************************************

LD B,16

XOR A

LODIV ADD HL,HL

RL A

JR C,OVFLOW

CP C

JR C,NOSUB

OVFLOW SUB C

INC HL

NOSUB DJNZ LODIV

HALT