03.pdf

(2327 KB) Pobierz
Architektura procesora typu CISC
J. Biernat: Architektura komputer–w.
Oficyna Wydawnicza Politechniki Wrocþawskiej, Wrocþaw 2001
¤ CISC ( Complex Instruction Set Computer ) - procesor:
Î o zþoŇonej liĻcie rozkaz–w majĢcych r–Ňny, zmienny format
Î z maþym zestawem rejestr–w strukturalnych (dla uŇytkownika)
Î o rozbudowanych trybach adresowania
¤ wzrost liczby takt–w zegarowych przy wzroĻcie zþoŇonoĻci instrukcji
¤ trudnoĻci z racjonalnym wykorzystaniem zasob–w procesora; przy
prostych, elementarnych operacjach wykorzystanie niewielkiej czħĻci
zasob–w procesora
¤ statystyka dziaþania system–w operacyjnych i program–w uŇytkowych
wskazuje na czħste wykonywanie operacji prostych i rzadkie zþoŇonych
¤ sterowanie przepþywem rozkaz–w realizowane programowo (mikro-kody);
þatwa realizacja sterowania wykonywania zþoŇonych rozkaz–w
wymagajĢcych r–Ňnych okres–w czasu
Technika cyfrowa 2
wykþad 3
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
What is "microcode"?
www.intel.com: XP SP2 vs. Intel Prescott
Anything sufficiently complex that has been handcrafted by humanswill
contain errors . Modern software has millions of lines of source code, and
modern processors have millions of transistors, so this applies to both.
Microsoft Operating Systems arrive on CD that is built to a particular
Service Pack level, and errors found after that was made will be fixed via
patches downloaded from their web site.
Intel processors are manufactured to a particular stepping level, and errors
found after that was made may be fixedviamicrocode updates sent to the
processor, typically by BIOS on every system startup.
Microcode updates are not stored permanently within the processor; they
vanish when the power is cut, so every boot hastore-assert them.
C51 - procesor typu CISC
¤ r–Ňny, zmienny format rozkaz–w:
1 r r r
0
0
1
0
ADD A,Rn
0
1
1
1
0 1 1 i
dana
MOV @Ri,#dana
MICROCODE
ENGINE
A microcode engine controls the CPU,
allowing it to perform operations with any
byte, word or double word in the 256 byte
register space. Instructions to the CPU are
taken from the queue and stored temporarily
in the instruction register. The microcode
engine decodes the instructions and
generates the correct sequence of events to
have the RALU perform the desired function.
A
A
A
0
0 0 0 1
adres A
ACALL adr_11
1
0
1
1
0 1 0 1
adres
rel
CJNE A,adr,rel
¤ wzrost liczby takt–w zegarowych przy wzroĻcie zþoŇonoĻci instrukcji:
Î 1 lub 2 cykle maszynowe dla wszystkich instrukcji
Î 4 cykle maszynowe dla MUL AB oraz DIV AB (standard)
¤ elementarne operacje wykorzystujĢ tylko wybrane rejestry:
Î uprzywilejowany akumulator A i znacznik przeniesienia C
Î adresowanie poĻrednie tylko przez R0 i R1 (z 8 dostħpnych rejestr–w)
Intel§ IXP1200 Network. Processor Family. Microcode ProgrammerÓs Reference
Manual. INTEL Corporation, March 2002, Part Number: 278304-011
80C196KB User's Guide. INTEL Corporation, November 1990, Order Number:
270651-003
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
Architektura procesora typu RISC (1/2)
Architektura procesora typu RISC (2/2)
¤ prosta struktura wewnħtrzna
¤ sterowanie przepþywem rozkaz–w realizowane sprzħtowo (brak mikro-kod–w,
eliminacja mikroprogramowania)
¤ uproszczenie tryb–w adresowania, zwykle jednolity format rozkaz–w (staþa
dþugoĻę kod–w instrukcji)
¤ wiħksze moŇliwoĻci wyboru uniwersalnych rejestr–w mikroprocesora
¤ architektura typu load/store, przetwarzanie danych w oparciu o rejestry nie
bezpoĻrednio na zawartoĻci pamiħci
¤ szybsze dziaþanie ideaþem jest wykonanie kaŇdej instrukcji w jednym cyklu
procesora zmniejszenie liczby takt–w zegarowych tworzĢcych cykl
maszynowy (przetwarzanie potokowe)
¤ uþatwienie opracowania, wytworzenia i testowania:
Î nowego mikroprocesora
Î systemu operacyjnego i programu uŇytkowego
Î kompilatora wysokiego poziomu
¤ wykonanie operacji r–wnowaŇnej wymaga wiħkszej liczby rozkaz–w w
procesorze RISC niŇ w procesorze CISC
Zd. Pogoda: Mikroprocesory RISC rodziny PowerPC.
Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego, Gliwice 1995
¤ uproszczonĢ strukturħ mikroprocesora, o zredukowanej liĻcie
rozkaz–w zaproponowaþ John Cocke (IBM Research w Yorktown, New
York, 1974) wychodzĢc z zaþoŇenia, Ňe 20% dostħpnych instrukcji
zajmuje aŇ 80% czasu pracy procesora
¤ skr–t RISC ( Reduced Instruction Set Computer ) zaproponowaþ David
Patterson (University of California, Berkeley, 1985)
obecnie skr–t RISC tþumaczony jako Rational InstructionSet Computer
¤ idea RISC zostaþa wykorzystana w mikroprocesorze SPARC firmy Sun
Microsystem; poczĢtek powstania tego co jest znane jako technologia
MIPS, np. w komputerach Silicon Graphics, procesorze Alpha firmy DEC
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
1
 
MSP430 - procesor typu RISC
ARM (procesor typu RISC) - Pipeline (1/2)
www.ti.com
¤ 27 basic instructions + 24 emulated instructions
¤ jednolity format rozkaz–w (staþa dþugoĻę kodu), np. dla formatu I:
¦ Up to the ARM7 , ARM processors have a 3-stage instruction pipeline:
  Fetch:
Fetching an instruction from the memory containing the code
  Decode:
Decoding the instruction and prepare data path control
signals for next cycle
15
12
11
8
7
6
5
4
3
0
  Execute:
The instruction gets executed on the data path specified and
the result is written back to the destination
OP - Code
source register
Ad
B/W
As
dest. register
¦ Higher performance ARM9 derivatives use a 5-stage pipeline to
compensate for the memory access bottleneck of the 3-stage pipeline:
  Fetch: Fetch next instruction from memory
  Decode: Decode instruction and read register operands
  Execute: Execute instruction
  Data: Access data memory, if required
  Write-back: Write the result of the instruction back to the destination
memory location
¤ wiħksze moŇliwoĻci wyboru uniwersalnych rejestr–w mikroprocesora:
Î R0 - licznik rozkaz–w PC
Î R1 - wskaŅnik stosu SP
Î R2 - rejestr statusowy SR / generator staþych CG1
Î R3 - generator staþych CG2
Î R4 .. R15 - rejestry uniwersalne
¤ ortogonalne tryby adresowania - wszystkie instrukcje ze wszystkimi trybami
adresowania i operandami
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
ARM7TDMI / ARM9TDMI - Pipeline (2/2)
Architektura procesora typu Bit Slice
ARM7TDMI (ARM7TDMI-S)
¤ kaŇdy blok funkcjonalny tworzĢ oddzielne ukþady zwane segmentami , np. ALU,
rejestry
¤ istnieje moŇliwoĻę wzajemnej wsp–þpracy (poþĢczenia) segment–w w celu
zbudowania procesora o zadanej dþugoĻci sþowa, np. dysponujĢc procesorem
4-bitowym moŇna zbudowaę procesor 8-, 16-, 24- ..-bitowy
¤ mikrokod procesora (microcode) jest pamiħtany w pamiħci ROM lub szybkiej
pamiħci RAM (dynamiczne mikroprogramowanie)
Execute
Fetch
Decode
ARM9TDMI
¤ najpopularniejszym procesorem segmentowym jest seria Am2900 (Advanced
Micro Devices) , np. Am2901 :
Î struktura : 4-bitowa ALU, 16x4-bitowa pamiħę RAM (rejestry), akumulator Q
Î wykonywane operacje : dodawanie z przeniesieniem (addition with carry) ,
odejmowanie z poŇyczkĢ (subtraction with borrow) , OR, AND, XOR i XNOR
Î argumenty zawarte w: RAM, akumulatorze, zewnħtrznych wejĻciach,
domyĻlna wartoĻę 0,
Î wynik operacji : przeniesienie dla innych segment–w (carry-out f lag) , znak
(sign flag) , przekroczenie zakresu (overflow flag) , wynik zerowy (zero flag) ...
Fetch
Decode
Execute
Memory
Write
  The maximum clock frequency of the ARM9TDMI core is generally in the
range 1.8 to 2.2 times the clock frequency of the ARM7TDMI core when
compared on the same silicon process.
  Reducing the number of cycles for loads and stores gives a significant
improvement in program execution time as typically around 30% of
instructions are loads or stores.
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
Optymalizacja, przetwarzanie danych
Tryby adresowania - struktura procesora
¤ licznik rozkaz–w PC adresujĢcy pamiħę kodu programu (ROM)
¤ dekoder rozkaz–w
¤ 3 wewnħtrzne rejestry: A, B i C
¤ mechanizmy dostħpu do pamiħci danych (RAM) Î adresowanie
bezpoĻrednie i poĻrednie (za poĻrednictwem rejestru: A, B lub C)
Optymalizacja kompilator–w :
¤ rozkazy wykonywane przez procesor realizujĢ funkcje, kt–re najczħĻciej
powtarzajĢ siħ podczas kompilacji
¤ lista rozkaz–w dostosowana do potrzeb kompilator–w, a nie wþasnoĻci
procesora
¤ zaþoŇenia przydatne przy projektowaniu nowych konstrukcji procesor–w
Spos–b przetwarzania danych - obciĢŇenie rejestr–w procesora i pamiħci:
¤ register-to-register przestrzeniĢ roboczĢ sĢ rejestry og–lnego
przeznaczenia:
Î accumulator-based CPU, z akumulatorem zwiĢzana jest wiħkszoĻę
instrukcji arytmetyczno-logicznych i wymiany danych
Î register-based CPU (register-to-register), rolħ akumulatora peþniĢ
rejestry og–lnego przeznaczenia
¤ memory-to-memory bloki pamiħci traktowane sĢ jako przestrzeı
robocza, zastħpujĢca rejestry og–lnego przeznaczenia
Pamiħę danych:
(RAM)
Rejestr A
addr2+1
addr2
addr2-1
Rejestr B
Rejestr C
Pamiħę programu:
(ROM)
addr1+1
Dekoder rozkaz–w
addr1
Licznik rozkaz–w
addr1-1
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
2
 
Tryby adresowania - wþaĻciwe
Tryby adresowania - natychmiastowe
¤ natychmiastowe (immediate) - operand (operandy) zawarty w kolejnym bajcie
lub bajtach stanowiĢcych rozkaz
¤ wþaĻciwe (inherent, implied) - wszystkie informacje potrzebne do wykonania
rozkazu zawiera kod operacyjny instrukcji (opcode)
N
0
N
0
OP-Code
operand1
OP-Code
operand1 operand2
operand2
np. wartoĻę / liczba
Pamiħę danych:
Pamiħę danych:
addr2+1
addr2
addr2-1
addr2+1
addr2
addr2-1
Rejestry A, B, C
Operand2
Pamiħę programu:
Pamiħę programu:
Operand2
addr1+1
PC = addr1+1
Fetch
Fetch
Dekoder rozkaz–w
PC = addr1
Dekoder rozkaz–w
PC = addr1
addr1-1
addr1-1
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
Tryby adresowania - bezpoĻrednie
Tryby adresowania - rejestrowe
¤ bezpoĻrednie (direct) - adres operandu umieszczony w rozkazie, w bajcie lub
bajtach tworzĢcych rozkaz
¤ rejestrowe (register) , rejestrowe bezpoĻrednie (register direct) - operand
zawarty w rejestrze; adres rejestru stanowi czħĻę rozkazu
0
N
0
N
OP-Code
operand1
zawiera
operand2
OP-Code
operand1 rejestr
operand2 (1#2)
operand2 (2#2)
jest adresem
pamiħci
Pamiħę danych: addr2+1
Operand2 = addr2
addr2-1
Pamiħę danych:
Rejestr B
addr2+1
Data
Rejestry A, B, C
addr2
Rejestr A
addr2-1
Rejestr C
Pamiħę programu:
Pamiħę programu:
Operand2
PC = addr1+1
addr1+1
Fetch
Dekoder rozkaz–w
Fetch
Dekoder rozkaz–w
PC = addr1
PC = addr1
addr1-1
addr1-1
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
Tryby adresowania - poĻrednie
Tryby adresowania - wskaŅnikowe
¤ wskaŅnikowe (pointer) - adres argumentu w dedykowanym rejestrze; odmiana
adresowania poĻredniego
¤ indeksowe (indexed) - w rejestrze indeksowym adres argumentu w pamiħci
¤ indeksowe bez przesuniħcia (indexed, no offset) - adres w rejestrze
indeksowym, brak przesuniħcia (Motorola)
¤ rejestrowe poĻrednie (register indirect) - w rejestrze adres operandu
(argumentu) w pamiħci; adres rejestru stanowi czħĻę rozkazu
N
0
zawartoĻę rejestru jest
adresem pamiħci
OP-Code
operand1 rejestr
N
0
zawartoĻę rejestru jest
adresem pamiħci
OP-Code
operand1 rejestr
Pamiħę danych:
Pamiħę danych:
Rejestr A, C
Rejestr A
Data
Data
addr2+1
addr2+1
B = addr2
BC = addr2
addr2-1
addr2-1
Rejestr B = addr2
Rejestry BC = addr2
Pamiħę programu:
Pamiħę programu:
addr1+1
addr1+1
Fetch
Fetch
Dekoder rozkaz–w
Dekoder rozkaz–w
PC = addr1
PC = addr1
addr1-1
addr1-1
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
3
 
Tryby adresowania - indeksowe (1/2)
Tryby adresowania - indeksowe (2/2)
¤ absolutne indeksowe (absolute indexed) - adres argumentu jest sumĢ
zawartoĻci rejestru indeksowego i 16-bitowego przesuniħcia
¤ indeksowe z 8-bitowym przesuniħciem (indexed, 8-bit offset) - adres jest
sumĢ zawartoĻci rejestru indeksowego i 8-bitowego przesuniħcia (Motorola)
¤ indeksowe z 16-bitowym przesuniħciem (indexed, 16-bit offset) - adres jest
sumĢ zawartoĻci rejestru indeksowego i 16-bitowego przesuniħcia
¤ rejestrowe poĻrednie z przesuniħciem (register indirect with displacement lub
absolute offset indirect) - adres pamiħci jest sumĢ zawartoĻci rejestru i
przesuniħcia; adres rejestru i przesuniħcie stanowĢ czħĻę rozkazu
¤ absolutne indeksowe (absolute indexed) - adres argumentu jest sumĢ
zawartoĻci rejestru indeksowego i 16-bitowego przesuniħcia
¤ indeksowe z 8-bitowym przesuniħciem (indexed, 8-bit offset) - adres jest
sumĢ zawartoĻci rejestru indeksowego i 8-bitowego przesuniħcia (Motorola)
¤ indeksowe z 16-bitowym przesuniħciem (indexed, 16-bit offset) - adres jest
sumĢ zawartoĻci rejestru indeksowego i 16-bitowego przesuniħcia
¤ rejestrowe poĻrednie z przesuniħciem (register indirect with displacement lub
absolute offset indirect) - adres pamiħci jest sumĢ zawartoĻci rejestru i
przesuniħcia; adres rejestru i przesuniħcie stanowĢ czħĻę rozkazu
Pamiħę danych:
Data
Rejestr A
addr2+1
N
0
BC + disp = addr2
OP-Code
rejestr
zawartoĻę rejestru
addr2-1
Rejestry BC
+
displacement (1#2)
displacement (2#2)
Pamiħę programu:
disp
przesuniħcie disp
PC = addr1+1
Dekoder rozkaz–w
Fetch
jest adresem pamiħci
PC = addr1
addr1-1
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
Tryby adresowania - wzglħdne
Tryby adresowania - poĻrednie + INC
¤ wzglħdne (relative lub relative direct) - adres argumentu jest sumĢ bieŇĢcej
zawartoĻci licznika rozkaz–w PC i 8- lub 16-bitowego przesuniħcia
¤ rejestrowe poĻrednie zautoinkrementacjĢ (register indirect, autoincrement /
with post-increment) - adres argumentu w rejestrze; adres rejestru stanowi
czħĻę rozkazu, po wykonaniu rozkazu autoinkrementacja zawartoĻci rejestru
N
0
zawartoĻę rejestru jest
adresem pamiħci
rejestr + 1 (dostħp bajtowy)
lub
rejestr + 2 (dostħp sþowowy)
OP-Code
zawartoĻę PC
przesuniħcie disp
N
0
displacement (1#2)
displacement (2#2)
+
OP-Code
operand rejestr
jest adresem pamiħci
Pamiħę danych:
po BC = addr2+1
Pamiħę danych:
Rejestr A
Data
addr2+1
PC + disp =
addr1+ disp = addr2
Data
Rejestry A, B, C
przed BC = addr2
BC = addr2
po wykonaniu instrukcji
BC = addr2 + 1
addr2-1
addr2-1
Pamiħę programu:
Pamiħę programu:
disp
PC = addr1+1
addr1+1
Dekoder rozkaz–w
Fetch
Fetch
Dekoder rozkaz–w
PC = addr1
PC = addr1
addr1-1
addr1-1
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
Tryby adresowania - inne ?
Linia kodu programu
¤ wzglħdne (relative lub relative direct) - adres argumentu jest sumĢ bieŇĢcej
zawartoĻci licznika rozkaz–w PC i 8- lub 16-bitowego przesuniħcia
¤ wzglħdne poĻrednie (relative indirect) - adres argumentu jest sumĢ
bieŇĢcej zawartoĻci licznika rozkaz–w i rejestru lub rejestr–w
¤ indeksowo-rejestrowo-poĻrednie (indirect-register-indexed) - adres jest
sumĢ zawartoĻci rejestru indeksowego i rejestru og–lnego przeznaczenia
instrukcja
mnemonik instrukcji [operand1], [operand2], ..
[etykieta:]
[; komentarz]
dyrektywa
etykieta - symboliczny adres,
¤ wzglħdne indeksowe (relative indexed) - adres argumentu jest sumĢ
bieŇĢcej zawartoĻci licznika rozkaz–w, rejestru indeksowego i 16-bitowego
przesuniħcia
¤ wzglħdne poĻrednie z przesuniħciem (relative offset indirect) - adres
argumentujest sumĢ bieŇĢcej zawartoĻci licznika rozkaz–w, rejestru
(rejestr–w) i 16-bitowego przesuniħcia
instrukcja - rozkaz wykonywany przez procesor,
mnemonik - symboliczna nazwa instrukcji,
operand - argumenty instrukcji,
dyrektywa - polecenie dla asemblera,
¤ bitowe (bit) - adres bitu zawarty w kodzie operacyjnym rozkazu lub w
kolejnym bajcie lub bajtach stanowiĢcych rozkaz
komentarz - tekst pomijany przez asembler, od Ò;Ó do CR LF
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
4
 
Format instrukcji - PIC
Format instrukcji - C51 (1/3)
PIC16C77x (Microchip Technology Inc.) - staþa dþugoĻę instrukcji r–wna 14-bit–w
Byte-oriented
file register
operations:
rozkazy 1- bajtowe , 2-bajtowe i 3-bajtowe
13
8
7
6
0
kod rozkazu bez argument–w lub z pojedynczym, ukrytym argumentem:
0 0 0 0 0 0 0 0
OP-Code
d
f (FILE #)
np. NOP
d = 0 for destination W (Working register - accumulator)
d = 1 for destination f (register file address: 0 .. 7Fh)
f = 7-bit file register address (0 .. 7Fh)
1 0 0 1 0 0 1 1
np. MOVC A, @A+DPTR
kod rozkazu i argumenty:
1 bit dla adresowania poĻredniego:
Bit-oriented
file register
operations:
13
10
9
7
6
0
OP-Code
b = 3-bit address (bit address within an 8-bit file register)
f = 7-bit register address (0 .. 7Fh)
b (BIT #)
f (FILE #)
1 1 1 0 0 1 1 i
np. MOV A, @Ri
3 bity dla adresowania rejestrowego:
1 1 1 0 1 r r r
13
11
10
0
CALL and
GOTO
instructions
np. MOV A, Rn
OP-Code
k = 11-bit immediate value (label address)
k (literal)
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
Format instrukcji - C51 (2/3)
Format instrukcji - C51 (3/3)
rozkazy 1-bajtowe, 2- bajtowe i 3- bajtowe
rozkazy 1-bajtowe, 2-bajtowe i 3-bajtowe
kod rozkazu i argumenty:
3 bajty dla jednego, 2-bajtowego argumentu:
kod rozkazu i argumenty:
2 bajty dla adresowania bezpoĻredniego:
1 1 1 1 0 1 0 1
0 0 0 1 0 0 1 0
np. MOV addr, A
addr_16 15..8
addr_16 7..0
np. CALL addr_16
addr
3 bajty dla dw–ch 1-bajtowych argument–w:
Format rozkazu wykorzystujĢcy r–Ňne podane kombinacje:
1 0 1 1 1 r r r
data
rel
1 0 1 1 0 1 0 1
addr
rel
np. CJNE A, addr, rel
np. CJNE Rn, #data, rel
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
PREFIX w kodach rozkaz–w C51
Format instrukcji - Pentium
IA-32 Intel§ Architecture Software DeveloperÓs Manual. Volume 2: Instruction Set Reference
x0
x1
x2
x3
x5
operandy w:
¤ rejestrach
¤ pamiħci
AJMP
addr11
LJMP
addr16
RR
A
INC
addr
0x
NOP
kod operacyjny rozkazu
przesuniħcie
operand
JBC
bit, rel
ACALL
addr11
LCALL
addr16
RRC
A
DEC
addr
ADD
A, addr
OPCODE
PREFIX = 0A5h
dodatkowe
instrukcje np.
80C51MX (Philips)
C251 (Intel/Atmel)
1x
SIB
(Scale-Index
-Base)
JB
bit, rel
AJMP
addr11
RL
A
Instruction
Prefixes
Opcode
ModR/M
Displacement
Immediate
2x
RET
ORL
C, /bit
AJMP
addr11
MOV
C, bit
INC
DPTR
OPCODE
PREFIX
Up to four
prefixes of
1-byte each
(optional)
1 or 2 byte
opcode
1 byte
(if required)
1 byte
(if required)
Address
displacement
of 1, 2, or 4
bytes or none
Immediate
data of
1, 2, or 4
bytes or none
Ax
POP
addr
ACALL
addr11
LJMP
addr16
RR
A
DJNZ
addr, rel
MOV
A, addr
MOV
addr, A
Brak
instrukcji:
dla CODE
do 2KB
bez P0 i P2
Dx
MOVX
A,@DPTR
AJMP
addr11
MOVX
A, @Ri
Ex
¤ w instrukcjach powt–rzeı (REPNE/REPNZ - F2h , REP - F3h , .. )
¤ wskazanie innego typu segmentu (CS - 2Eh , SS - 36h , DS. - 3Eh , .. )
¤ operandy 16-/32-bitowe (operand-size override - 66h )
¤ adresowanie 16-/32-bitowe (address-size override - 67h )
MOVX
@DPTR,A
ACALL
addr11
MOVX
@Ri, A
Fx
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
K ATEDRA M ETROLOGII E LEKTRONICZNEJ I F OTONICZNEJ
opracowanie A ndrzej S tĨpieIJ
5
 
Zgłoś jeśli naruszono regulamin