unterprogramme an mehreren stellen im programm stehen gleiche codeabschnitte!! 0000h 0200h...
TRANSCRIPT
UnterprogrammeUnterprogramme
An mehreren Stellen im Programm stehen gleiche Codeabschnitte!!
0000h
0200h
Programmspeicher
Problem• Langes Programm
• Programm unübersichtlich
UP
0000h
0200h
Programmspeicher
CALL UP3.
Auf
ruf
CALL UP2.
Auf
ruf
CALL UP
1. A
ufru
f
UnterprogrammeUnterprogramme
0100h
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0000h0000hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah09h08h07h BOS06h05h04h03h02h01h00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0002h0002hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah09h08h07h BOS06h05h04h03h02h01h00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0002h0002hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah09h08h07h BOS06h05h04h03h02h01h00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0004h0004hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah09h08h07h BOS06h05h04h03h02h01h00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0004h0004hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah09h08h07h BOS06h05h04h03h02h01h00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0007h0007hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah09h08h07h BOS06h05h04h03h02h01h00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
07h07h08h08h 0Fh0Dh0Ch0Bh0Ah09h08h07h BOS06h05h04h03h02h01h00h (R0)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0007h0007hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah09h08h TOS07h BOS06h05h04h03h02h01h00h (R0)
Stackpointer (SP)Stackpointer (SP)
0040h0040h
0Fh0Dh0Ch0Bh0Ah09h TOS08h07h BOS06h05h04h03h02h01h00h (R0)
09h09h
00h07h
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0040h0040hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS07h 08h
07h BOS06h05h04h03h02h01h00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0040h0040hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS07h 08h
07h BOS06h05h04h03h02h01h
5 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0042h0042hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS07h 08h
07h BOS06h05h04h03h02h01h
5 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0042h0042hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS07h 08h
07h BOS06h05h04h03h02h01h
5 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0042h0042hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS07h 08h
07h BOS06h05h04h03h02h01h00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
43210
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0044h0044hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0044h0044hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
00
0Fh0Dh0Ch0Bh0Ah
00h 09h07h 08h TOS
07h BOS06h05h04h03h02h01h
0 00h (R0)
08h08h07h07h 0Fh0Dh0Ch0Bh0Ah
00h 09h07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)07
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0007h0007hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0008h0008hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0008h0008hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
000Ah000AhPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
000Ah000AhPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
000Dh000DhPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
0Fh0Dh0Ch0Bh0Ah
00h 09h07h 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
0Fh0Dh0Ch0Bh0Ah09h08h TOS07h BOS06h05h04h03h02h01h
0 00h (R0)
0Fh0Dh0Ch0Bh0Ah09h TOS08h07h BOS06h05h04h03h02h01h
0 00h (R0)000Dh000Dh0040h0040h
07h07h08h08h
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
PCPC
internes RAMinternes RAMStackpointer (SP)Stackpointer (SP)09h09h
00h0Dh
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0040h0040hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS0Dh 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0040h0040hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS0Dh 08h
07h BOS06h05h04h03h02h01h
5 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0042h0042hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS0Dh 08h
07h BOS06h05h04h03h02h01h
5 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0042h0042hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS0Dh 08h
07h BOS06h05h04h03h02h01h
5 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0042h0042hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS0Dh 08h
07h BOS06h05h04h03h02h01h00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
43210
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0044h0044hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h TOS0Dh 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
09h09hStackpointer (SP)Stackpointer (SP)
0Fh0Dh0Ch0Bh0Ah
00h 09h TOS0Dh 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
0Fh0Dh0Ch0Bh0Ah
00h 09h0Dh 08h TOS
07h BOS06h05h04h03h02h01h
0 00h (R0)
0Fh0Dh0Ch0Bh0Ah
00h 09h0Dh 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0044h0044hPCPC
internes RAMinternes RAM09h09h
Stackpointer (SP)Stackpointer (SP)
00
08h08h07h07h
0D
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
000Dh000DhPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h0Dh 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0000h0000hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h0Dh 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)
BeispielBeispiel
ret 0044hWait: djnz R0,Wait 0042hZeit: mov R0,#5 0040h
••••
jump Start 000Dhcall Zeit 000Ahmov p2,a 0008hcpl a 0007hcall Zeit 0004hmov p2,a 0002h
Start: mov a,p1 0000h
Programmspeicher
(internes Flash-ROM)
Programmspeicher
(internes Flash-ROM)
0000h0000hPCPC
internes RAMinternes RAM0Fh0Dh0Ch0Bh0Ah
00h 09h0Dh 08h
07h BOS06h05h04h03h02h01h
0 00h (R0)
07h07hStackpointer (SP)Stackpointer (SP)