Przykładowa Maszyna Cyfrowa - PMC

Architektura Von Neumanna

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

RA - rejestr arytmometru, tzw. akumulator

LR - licznik rozkazów

RR - rejestr rozkazów

rr - fragment RR określający argument rozkazu

W przykładzie dla uproszczenia przyjęto słowo 8 bitowe, kod rozkazu kodowany na 3 starszych bitach, argument na 5 młodszych.

Przykładowa lista rozkazów procesora

1 AKUM <w> A <-- w Umieść wartość w RA

2 DOD <a> A <-- A + P(a) Dodaj zawartość komórki pamięci o

adresie a do zawartości akumulatora

3 ZAP <a> P(a) <-- A Umieść pod adresem a zawartość akumulatora

. . . . . . . . . . . . . . . .

6 GOTO <a> LR <-- a Ustaw licznik rozkazów na a

7 AKUM0 A <-- a Zeruj akumulator

Program w Pascalu

begin

var a,b,c: integer;

a:=8;

b:=4;

c:=a+b;

end

Program w asemblerze Kod maszynowy

GOTO 4 11000100

<a> 0 00000000

<b> 0 00000000

<c> 0 00000000

AKUM 8 00101000

ZAP <a> 01100001

AKUM 4 00100100

ZAP <b> 01100010

AKUM0 11100000

DOD <a> 01000001

DOD <b> 01000010

ZAP <c> 01100011

LR <= 0

RR <= P(LR)

Rozkaz z

argumentem?

A <= P(rr)

Wykonanie rozkazu z RR

Zmiana wartości LR

Pamięć

Procesor CPU

WE/WY

Jedn. ster.

Arytmometr

LR

RR

RA

Podstawowy cykl rozkazowy procesora