Intel 8008: razlika između inačica

Izbrisani sadržaj Dodani sadržaj
Vodomar (razgovor | doprinosi)
Vodomar (razgovor | doprinosi)
Redak 116:
| accessdate = December 4, 2010
}}</ref> No činjanica da je Intel 8008 mogao obraditi 8 bita u jedno vrijeme, te je mogao pristupiti većoj količini RAMa davalo je veću prednost 8008 za mnoge aplikacije. Intel 8008 imao je 3.500 [[tranzistor]]a<ref>{{cite web|url=http://www.intel.com/museum/archives/history_docs/Moore.htm |accessdate=June 28, 2009 |url-status=dead |archiveurl=https://web.archive.org/web/20090904175848/http://www.intel.com/museum/archives/history_docs/Moore.htm |archivedate=September 4, 2009 | title = Gordon Moore and Moore's Law | author = Intel }}</ref><ref>Intel (2012). [http://www.intel.com/content/dam/www/public/us/en/documents/corporate-information/history-intel-chips-timeline-poster.pdf "Intel Chips: timeline poster"].</ref><ref>Intel (2008). [http://www.intel.com/pressroom/kits/quickreffam.htm "Microprocessor Quick Reference Guide"].</ref>
 
=== Primjer programa ===
 
 
 
Sledeće je primjer u asembleru za Intel 8008 koji sadrži izvorni kod za rutinu <code>MEMKOPI</code> (kopiranje odnosno presliku) memorijskog bloka neke zadane veličine s jednog mjesta na drugo mjesto. Asemblerski program je napisan u NASM stilu.
 
<!--Opaska: Ovaj program nije optimiziran za najbolji rad ili brzinu već je namjera ovog programa da se pokažu mogućnosti naredbenog skupa koji je dostupan sa Intelom 8008->
{|
|
<pre>
001700 000
001701 000
001702 000
001703 000
001704 000
001705 000
002000 066 304
002002 056 003
002004 327
002005 060
002006 317
002007 302
002010 261
002011 053
002012 302
002013 024 001
002015 320
002016 301
002017 034 000
002021 310
002022 066 300
002024 056 003
002026 347
002027 060
002030 337
002031 302
002032 206
002033 360
002034 301
002035 215
002036 350
002037 307
002040 066 302
002042 056 003
002044 347
002045 060
002046 337
002047 364
002050 353
002051 330
002052 302
002053 206
002054 360
002055 301
002056 215
002057 350
002060 373
002061 104 007 004
002064
</pre>
|
<syntaxhighlight lang="nasm">
; MEMKOPI --
; Preskikaj blok memprije s jednog mjesta u memoriju na drugo
;
; Ulazni parametri
; IZV: 14-bit adresa početka memorijskog bloka
; ODR: 14-bit adresa odredišta memorijskog bloka
; BRJ: 14-bit brojač preslikanih bajtova
ORG 1700Q ;Podatci na 001700q
IZV DFB 0 ;IZV, niži bajt
DFB 0 ; viši bajt
ODR DFB 0 ;ODR, niži bajt
DFB 0 ; viši bajt
BRJ DFB 0 ;BRJ, niži bajt
DFB 0 ; viši bajt
ORG 2000Q ;Program je na 002000q
MEMKOPI LLI BRJ+0 ;HL = addr(BRJ)
LHI BRJ+1
LCM ;BC = BRJ
INL
LBM
PETLJA LAC ;Ako je BC = 0,
ORB
RTZ ;Vrati se nazad u Operacijski sustav
DECCNT LAC ;BC = BC - 1
SUI 1
LCA
LAB
SBI 0
LBA
GETIZV LLI SRC+0 ;HL = addr(IZV)
LHI SRC+1
LEM ;DE = IZV
INL
LDM
LAC ;HL = DE + BC
ADE
LLA
LAB
ACD
LHA
LAM ;Učitaj A od (HL)
GETODR LLI ODR+0 ;HL = addr(ODR)
LHI ODR+1
LEM ;DE = ODR
INL
LDM
LLE ;HL = DE
LHD
LDA ;D = A
LAC ;HL = HL + BC
ADL
LLA
LAB
ACH
LHA
LMD ;Spremi D u (HL)
JMP PETLJA ;Ponovi petlju
END
</syntaxhighlight>
|}
 
==Izvori==