Maschinenprogramme im Hauptspeicher |
Bereiche |
| Initialisierung: | |||||
|
| |||||
| Navigation: | |||||
|
Erklärung |
Der Unterschied der 4 Varianten des Programms liegt im Initialisierungsteil (Adresse 0000h bis 0005h), in dem die Register r0, r1 und r2 mit Werten belegt werden. Die Besonderheiten werden in den folgenden Tabellen beschrieben.
Variante 1: keine Überlappung |
Datei: p2_20_a.mpr
| Adresse | Wert | Mnemonic | Bereich | |
|---|---|---|---|---|
|
0000 |
1000 |
move 0025h,r0 |
keine Überlappung: Quellbereich von 0025h bis 002Fh Zielbereich von 0030h bis 003Ah Aktion: BMOVE wird ausgeführt. |
Initialisierung |
|
0001 |
0025 |
|
||
|
0002 |
1001 |
move 0030h,r1 | ||
|
0003 |
0030 |
|
||
|
0004 |
1002 |
move 000Bh,r2 | ||
|
0005 |
000B |
|
Variante 2: Ziel beginnt im Quellbereich |
Datei: p2_20_b.mpr
| Adresse | Wert | Mnemonic | Bereich | |
|---|---|---|---|---|
|
0000 |
1000 |
move 0025h,r0 |
Zielbereich beginnt im letzten Wort des Quellbereichs: Quellbereich von 0025h bis 0030h Zielbereich von 0030h bis 003Bh Aktion: BMOVE wird nicht ausgeführt. |
Initialisierung |
|
0001 |
0025 |
|
||
|
0002 |
1001 |
move 0030h,r1 | ||
|
0003 |
0030 |
|
||
|
0004 |
1002 |
move 000Ch,r2 | ||
|
0005 |
000C |
|
Variante 3: Ziel beginnt unterhalb des Quellbereichs |
Datei: p2_20_c.mpr
| Adresse | Wert | Mnemonic | Bereich | |
|---|---|---|---|---|
|
0000 |
1000 |
move 0025h,r0 |
Zielbereich beginnt unterhalb des Quellbereichs: Quellbereich von 0025h bis 002Fh Zielbereich von 0020h bis 002Ah Aktion: BMOVE wird ausgeführt. |
Initialisierung |
|
0001 |
0025 |
|
||
|
0002 |
1001 |
move 0020h,r1 | ||
|
0003 |
0020 |
|
||
|
0004 |
1002 |
move 000Bh,r2 | ||
|
0005 |
000B |
|
Variante 4: Ziel=Quellbereich |
Datei: p2_20_d.mpr
| Adresse | Wert | Mnemonic | Bereich | |
|---|---|---|---|---|
|
0000 |
1000 |
move 0025h,r0 |
Zielbereich und Quellbereich sind identisch: Quellbereich von 0025h bis 002Fh Zielbereich von 0025h bis 002Fh Aktion: BMOVE wird ausgeführt. |
Initialisierung |
|
0001 |
0025 |
|
||
|
0002 |
1001 |
move 0025h,r1 | ||
|
0003 |
0025 |
|
||
|
0004 |
1002 |
move 000Bh,r2 | ||
|
0005 |
000B |
|
Unterprogramm MemCopy |
Quell/Zieldatenbereich |
| Adresse | Wert | Bereich | ||
|---|---|---|---|---|
|
0020 |
0001 |
Werte von 01h bis 10h, um Funktion von BMOVE nachvollziehen zu können | ||
|
0021 |
0002 |
|||
|
0022 |
0003 |
|||
|
0023 |
0004 |
|||
|
0024 |
0005 |
|||
|
0025 |
0006 |
Beginn des Quellbereichs | ||
|
0026 |
0007 |
|||
|
0027 |
0008 |
|||
|
0028 |
0009 |
|||
|
0029 |
000A |
|||
|
002A |
000B |
|||
|
002B |
000C |
|||
|
002C |
000D |
|||
|
002D |
000E |
|||
|
002E |
000F |
|||
|
002F |
0010 |
|||
|
0030 |
0000 |
|||
|
0031 |
0000 |
|||
|
0032 |
0000 |
|||
|
0033 |
0000 |
|||
|
0034 |
0000 |
|||
|
0035 |
0000 |
|||
|
0036 |
0000 |
|||
|
0037 |
0000 |
|||
|
0038 |
0000 |
|||
|
0039 |
0000 |
|||
|
003A |
0000 |
|||
|
003B |
0000 |
|||
|
003C |
0000 |
|||
|
003D |
0000 |
|||
|
003E |
0000 |
|||
|
003F |
0000 |
01.07.98