Mavzu: Mikroprotsessor Intel 8080




Download 153,64 Kb.
Sana25.05.2024
Hajmi153,64 Kb.
#253474
Bog'liq
kopmyuter Abdujalilov


651 22 guruh
Abdujalilov Boburbeknig
Komoyuterni tashkil etish fanidan
Mavzu:Mikroprotsessor Intel 8080

Umumiy Tavsif


Intel 8080 mikroprotsessori 1974 yilda Intel tomonidan chiqarilgan va 8bitli mikroprotsessorlar oilasining birinchi keng tarqalgan a'zolaridan biridir. Bu protsessor dastlabki shaxsiy kompyuterlar va boshqa qurilmalar uchun muhim vosita bo'ldi va hisoblash texnologiyasi rivojida katta ahamiyatga ega bo'ldi.
Shunday bo'ldiki, 1974 yil 1 aprelda tug'ilgan Intel 8080 mikroprotsessori SSSRda kompyuter texnologiyalari rivojlanishining ma'lum bir bosqichida juda muhim rol o'ynadi. Buning bir qancha sabablari bor edi: mini-kompyuterlardan kelgan ancha qattiq 16-bitli LSI 11 mikroprotsessor arxitekturasidan farqli o'laroq, 8-bitli 8080 hayratlanarli darajada sodda edi. Nazorat muammolari instituti (IPU)dagi laboratoriyamda amaliyot o‘tagan Fizika-texnika institutining yuqori kurs talabalari yotoqxonada undan foydalanib, bitta taxtali kompyuterlarni yig‘ishdi. Laboratoriyada elementar baza bilan har doim yaxshi edi va biz hatto bunday narsalarni rag'batlantirardik - shu tarzda talaba nima ekanligini tezda tushuna boshladi.
Ushbu protsessorda va unga mos keladigan analoglarda quyidagi mikrokompyuterlar ishlab chiqarilgan:
VEFormika (NIIFEF);
K-1715 (Robotron, GDR);
SM-1800 (INEUM, Moskva);
APOS-80 (PO Box 300, E. Tsibulskiy, S. Makeev, E. Proydakov va boshqalar)
Yagona muhim kamchilik shundaki, protsessor uch darajadagi ta'minot kuchlanishini talab qiladi.
8080 ko'rsatmalar to'plamida 79 ta ko'rsatma mavjud (Intel 8080 mikroprotsessor ko'rsatmalar to'plamiga qarang).
70-yillarning oxirida Kiev NPO Kristall K580 mikroprotsessor to'plamini chiqardi, unga quyidagi chiplar kiradi:
K580VM80 - i8080 bilan mos keladigan protsessor;
K580VV51 - ketma-ket interfeys adapteri, Intel 8151 analogi;
K580VV53 - intervalli taymer;
K580VV55A - parallel interfeys adapteri;
K580VT57 - to'g'ridan-to'g'ri xotiraga kirish boshqaruvchisi;
K580VN59A - uzilish nazoratchisi;
K580VG72 - floppi boshqaruvchisi;
K580VG75 - katod nurlari trubkasi boshqaruvchisi;
K580VG79 - klaviatura va displey boshqaruvchisi;
K580VK91A - umumiy kanal boshqaruvchisi;
K580VG92A - asboblar interfeysi boshqaruvchisi.
Afsuski, men ushbu mikrosxemalarning tavsiflarini saqlamadim, shuning uchun men ushbu LSI-larning dasturlash tavsifini yuborgan har bir kishidan minnatdor bo'laman.
Shuni ta'kidlash kerakki, Intel 8080/85 uchun arifmetik tezlatgich chipini ishlab chiqargan. Biroq, 8080 MEP tomonidan ilgari surilgan Elektronika-60 mikroprotsessoriga haqiqiy xavf tug'dirganligi sababli, bu mikrosxema SSSRda hech qachon qayta ishlab chiqarilmagan.
8080 protsessor arxitekturasi
Ro'yxatdan o'tish fayli
Bayroqlar
B C
D E
H L
Kompyuter (dastur hisoblagichi)
SP (stek ko'rsatkichi)
Bir juft registr A + bayroqlari (jadvalning birinchi qatori) PSW deb nomlangan 16 bitli registrni tashkil qiladi, A so'zning yuqori baytini, bayroqlar esa past baytni egallaydi. Xuddi shunday, B va C registrlari 16 bitli BC registrini, D va E registrlari DE registrini, H va L registrlari HL registrini tashkil qiladi.
Bayroq ro'yxati
D7 D0
S Z x AC x P x C
S - belgisi
Z - nol
x - qiymat aniqlanmagan
AC - yordamchi tashish
P - paritet
C – uzatishRegistrlarning maqsadi
A - batareya. Barcha arifmetik va mantiqiy amallar faqat A va boshqa registrlar o'rtasida yoki A va bevosita ma'lumotlar bayti o'rtasida amalga oshiriladi.
B, C, D, E, H va L 8 bitli umumiy maqsadli registrlardir.
HL – ikkita 8-bitli registrdan (H – yuqori registr, L – past registr) tashkil topgan registrlar juftligi 64 KB xotirani bilvosita registr manzillash uchun ishlatiladi.
DE tez-tez ishlatiladigan registrlar juftligidir, chunki HL va DE juftlari o'rtasida tarkibni almashish bo'yicha ko'rsatma mavjud.
Kompyuter - dastur hisoblagichi, keyingi bajariladigan buyruqning manzilini o'z ichiga oladi.
SP – stekga registr jufti yozilganda stek ko‘rsatkichi avtomatik ravishda 2 ga oshiriladi (stekga alohida 8-bitli registrni yozish mumkin emas, faqat juft bo‘lib) va registr jufti stekdan chiqarilganda kamayadi.
F - bayroq registri. Undan dasturchi to'g'ridan-to'g'ri foydalana olmaydi, lekin PSWning bir qismi sifatida u stekda saqlanishi mumkin va keyin zarur bayroqlarni maxsus o'rnatish yoki tekshirish kerak bo'lsa, boshqa registrlar juftligiga olinishi mumkin.
Manzil maydoni atigi 64 KB bo'lgani uchun to'liq manzil 2 baytni oladi. Bu protsessorning buyruqlari bir, ikki va uch baytli. Birinchi bayt har doim operatsiya kodini o'z ichiga oladi. 8080 ning yagona muhim kamchiligi shundaki, protsessor uch darajadagi ta'minot kuchlanishini talab qiladi.
Intel 8080 mikroprotsessor ko'rsatmalar to'plami uchun ma'lumotnoma
Ushbu protsessorning ko'rsatmalari bir, ikki va uch baytli. Birinchi bayt har doim operatsiya kodini o'z ichiga oladi.
Belgilash.
A, B, ..., L - 8 bitli registrlarning nomlari.
BC, DE, HL - 16 bitli registrlarni tashkil etuvchi registr juftlarining nomlari.
SP - 16 bitli stek ko'rsatkichi.
PSW - dastur holati so'zi, bayroq registrini o'z ichiga oladi.
a16 ikki baytli manzildir.
d8 - to'g'ridan-to'g'ri ma'lumotlar bayti.
d16 - ikki bayt tezkor ma'lumot.
pp - I/U port raqami.
Buyruq kodi tavsifi
87 A←(A) + (A) QO'SHING
B 80 A←(B) + (A) QO‘SHING
QO'SHING C 81 A←(C) + (A)
D 82 A←(D) + (A) QO‘SHING
QO'SHING E 83 A←(E) + (A)
H 84 A←(H) + (A) QO'SHING
L 85 A←(L) + (A) QO‘SHING
M 86 A←Loc(HL) + (A) QO‘SHING
ADI d8 C6 A←d8 + (A)
ADC A 8F A←(A) + (A) + CY
ADC B 88 A←(B) + (A) + CY
ADC C 89 A←(C) + (A) + CY
ADC D 8A A←(D) + (A) + CY
ADC E 8B A←(E) + (A) + CY
ADC H 8C A←(H) + (A) + CY
ADC L 8D A←(L) + (A) + CY
ADC M 8E A←Loc(HL) + (A) + CY
ACI d8 Idoralar A←d8 + (A) + CF
ANA A A A7 Tekshirish A
ANA B A0 Mantiqiy VA B bilan A
ANA C A1 Mantiqiy VA C A bilan
ANA D A2 Mantiqiy VA D bilan A
ANA E A3 Mantiqiy VA E bilan A
ANA H A4 Mantiqiy VA H A bilan
ANA L A5 Mantiqiy VA L bilan A
ANA M A6 Mantiqiy VA Loc(HL) A bilan
ANI d8 E6 A bilan mantiqiy va tezkor ma'lumotlar
a16-ga qo'ng'iroq qiling CD Boshqaruvni a16 manzilidagi kichik dasturga o'tkazing
CZ a16 CC Agar nol bo'lsa, a16 manziliga qo'ng'iroq qiling
SNZ a16 C4 Xuddi shunday, agar nol bo'lmasa
CP a16 F4 Agar ortiqcha bo'lsa, xuddi shunday
CM a16 FC Minus bo'lsa ham xuddi shunday
CC a16 DC Agar uzatishda ham xuddi shunday
CNC a16 D4 Transfer bo'lmasa, xuddi shunday
CPE a16 EC Hatto bo'lsa ham xuddi shunday
CPO a16 E4 Agar g'alati bo'lsa, xuddi shunday
CMA 2F Invert A
CMC 3F Invert tashish
CMP A BF FZ bayrog'ini o'rnating
CMP B B8 A ni B bilan solishtiring
CMP C B9 A ni C bilan solishtiring
CMP D BA A ni D bilan solishtiring
CMP E BB A ni E bilan solishtiring
CMP H BC A ni H bilan solishtiring
CMP L BD A ni L bilan solishtiring
CMP M BE A bilan Loc(HL) ni solishtiring
CPI d8 FE A ni buyruqda ko'rsatilgan tezkor ma'lumotlar bilan solishtiring
DAA 27 Decimal akkumulyatorni tuzatish (mutlaqo foydasiz buyruq. Men uni hech qachon ishlatmaganman :)
DAD B 09 HL ga BC qo'shing
DAD D 19 HL bilan DE qo'shing
DAD H 29 HL ni HLga qo'shing (ikki HL)
DAD SP 39 HL ga SP qo'shing
DCR A 3D A←(A) - 1 (kamaytirish A)
DCR B 05 B←(B) - 1
DCR C 0D C←(C) - 1
DCR D 15 D←(D) - 1
DCR E 1D E←(E) - 1
DCR H 25 H←(H) - 1
DCR L 2D L←(L) - 1
DCR M 35 Loc (HL)←(Loc(HL)) -1
DCX B 0B BC←(BC) - 1
DCX D 1B DE←(DE) -1
DCX H 2B HL←(HL) - 1
DCX SP 3B SP←(SP) -1
DI F3 Uzilishlarni o'chirish
EI FB uzilishlarni yoqish
HLT 76 protsessor to'xtashi
IN pp DB Port pp dan ma'lumotlarni kiritish
INR A 3C A←(A) + 1 (A ortishi)
INR B 04 B o'sishi
INR C 0C ortishi C
INR D 14 o'sish D
INR E 1C ortishi E
INR H 24 H ortishi
INR L 2C ortishi L
INR M 34 Loc(HL) tarkibini oshirish
INX B 03 BC ortishi
INX D 13 DE ortishi
INX H 23 HLni oshirish
INX SP 33 Increment SP
JMP a16 C3 a16 ga o'ting
JZ a16 CA Nol bo'lsa ham xuddi shunday
JNZ a16 C2 Xuddi shunday, agar nol bo'lmasa
JP a16 F2 Agar ortiqcha bo'lsa, xuddi shunday
JM a16 FA Agar minus bo'lsa, xuddi shunday
JC a16 DA Agar o'tkazilsa ham xuddi shunday
JNC a16 D2 Agar ko'chirish bo'lmasa, xuddi shunday
JPE a16 EA Agar paritet juft bo'lsa, a16 manziliga o'ting
JPO a16 E2 Agar paritet toq bo'lsa, a16 manziliga o'ting
LDA a16 3A A ni a16 joydan yuklang
LDAX B 0A Loc(BC) joylashuvidan A ni yuklang
LDAX D 1A Loc(DE) manzilli katakdan A ni yuklang
LHLD a16 2A a16 manzilli katak tarkibini HL ga yuklang
LXI B,d16 01 to'g'ridan-to'g'ri d16 ma'lumotlarini BC ga yuklang
LXI H,d16 21 HLga to'g'ridan-to'g'ri d16 ma'lumotlarini yuklang
LXI SP,d16 31 SP ga to'g'ridan-to'g'ri d16 ma'lumotlarini yuklang
MOV A,A 7F A dan A ga oldinga
MOV A,B 78 B dan A ga yuborish (B←(A) )
MOV A,C 79 C dan A ga oldinga
MOV A,D 7A D dan A ga oldinga
MOV A,E 7B E dan A ga oldinga
MOV A,H 7C H dan A ga oldinga
MOV A,L 7D L dan A ga oldinga
MOV A,M 7E Loc(HL) dan A ga yo‘naltirish
MOV B,A 47 A dan B ga oldinga
MOV B,B 40 B dan B ga yuborish (boshqa g'alati buyruq)
MOV B,C 41 C dan B ga oldinga
MOV B,D 42 D dan B ga oldinga
MOV B,E 43 E dan B ga oldinga
MOV B,H 44 H dan B ga oldinga
MOV B,L 45 L dan B ga oldinga
MOV B,M 46 Loc(HL) dan B ga oldinga
MOV C,A 4F A dan C gacha oldinga
MOV C,B 48 B dan C ga oldinga
MOV C,C 49 C dan C ga yuborish
MOV C,D 4A D dan C gacha oldinga
MOV C,E 4B E dan C ga oldinga
MOV C,H 4C H dan C ga oldinga
MOV C,L 4D L dan C gacha oldinga
MOV C,M 4E Loc(HL) dan C ga yo'naltirish
MOV D,A 57 A dan D ga oldinga
MOV D,B 50 B dan D ga oldinga
MOV D,C 51 C dan D ga oldinga
MOV D,D 52 D dan D ga oldinga
MOV D,E 53 E dan D ga oldinga
MOV D,H 54 H dan D ga oldinga
MOV D,L 55 L dan D ga oldinga
MOV D,M 56 Loc(HL) dan D ga oldinga
MOV E,A 5F A dan E ga oldinga
MOV E,B 58 B dan E ga oldinga
MOV E,C 59 C dan E ga oldinga
MOV E,D 5A D dan E ga oldinga
MOV E,E 5B E dan E ga oldinga
MOV E,H 5C H dan E ga oldinga
MOV E,L 5D L dan E ga oldinga
MOV E,M 5E Loc(HL) dan E ga yo‘naltirish
MOV H,A 67 A dan H ga oldinga
MOV H,B 60 B dan H ga oldinga
MOV H,C 61 C dan H ga oldinga
MOV H,D 62 D dan H ga oldinga
MOV H,E 63 E dan H ga yo‘naltirish
MOV H,H 64 H dan H ga oldinga
MOV H,L 65 L dan H ga oldinga
MOV H,M 66 Loc(HL) dan H ga oldinga
MOV L,A 6F A dan L ga oldinga
MOV L,B 68 B dan L ga oldinga
MOV L,C 69 C dan L ga oldinga
MOV L,D 6A D dan L ga oldinga
MOV L,E 6B E dan L ga oldinga
MOV L,H 6C H dan L ga oldinga
MOV L,L 6D L dan L ga oldinga
MOV L,M 6E Loc(HL) dan L ga yo'naltirish
MOV M,A 77 A dan M ga oldinga
MOV M,B 70 B dan M ga oldinga
MOV M,C 71 C dan M ga oldinga
MOV M,D 72 D dan M ga oldinga
MOV M,E 73 E dan M ga yo‘naltirish
MOV M,H 74 H dan M ga oldinga
MOV M,L 75 L dan M ga yuboring
MVI A,d8 3E d8 ni A ga yuboring
MVI B,d8 06 d8 ni B ga yuboring
MVI C,d8 0E d8 ni C ga yuboring
MVI D,d8 16 d8 ni D ga yuboring
MVI E,d8 1E d8 ni E ga yuboring
MVI H,d8 26 d8 ni H ga yuboring
MVI L,d8 2E d8 ni L ga yuboring
MVI M,d8 36 d8 ni Loc(HL) ga yuboring
NOP 00 Ishlamaydi
ORA A B7 A tekshiring va tashishni qayta o'rnating
ORA B B0 Mantiqiy operatsiya A YOKI B
ORA C B1 Mantiqiy operatsiya A YOKI C
ORA D B2 Mantiqiy operatsiya A YOKI D
ORA E B3 Mantiqiy operatsiya A YOKI E
ORA H B4 Mantiqiy operatsiya A OR H
ORA L B5 Mantiqiy operatsiya A YOKI L
ORA M B6 Mantiqiy operatsiya A YOKI M
ORI d8 F6 Mantiqiy operatsiya A YOKI d8
OUT pp D3 pp portiga A yozing
PCHL E9 Boshqaruvni HLdagi manzilga o'tkazing
POP B C1 Stackdan so'zni BC ga oching
POP D D1 Stackdan so'zni DE ga oching
POP H E1 HLda stekdan so'zni chiqarib oling
POP PSW F1 Stackdan so'zni PSW ga oching
PUSH B C5 BC tarkibini to'plamga suring
PUSH D D5 DE tarkibini suring
PUSH H E5 HL tarkibini suring
PUSH PSW F5 PSW tarkibini stekga suring
RAL 17 Tsikl siljishi CY + A chapga
RAR 1F Tsiklik siljish CY + A o'ngga
RLC 07 Shift A tashish bilan bir bitni qoldirdi
RRC 0F Shift O'ngga bir bit tashish bilan
RIM 20 O'qishni to'xtatish niqobi (faqat 8085)
RET C9 Pastki dasturdan qaytish
RZ C8 Agar FZ=0 bo'lsa, pastki dasturdan qaytish
RNZ C0 Agar FZ=1 bo'lsa, pastki dasturdan qaytish
RP F0 Agar FP=1 bo'lsa, pastki dasturdan qaytish
RM F8 Agar FP=0 bo'lsa, pastki dasturdan qaytish
RC D8 Agar FC=1 bo'lsa, pastki dasturdan qaytish
RNC D0 Agar FC=0 bo'lsa, pastki dasturdan qaytish
RPE E8 Agar paritet juft bo'lsa, pastki dasturdan qaytish
RPO E0 Agar paritet toq bo'lsa, pastki dasturdan qaytish
RST 0 C7 Dasturni 0-manzildan boshlang
RST 1 CF Dasturni 8h manzildan boshlash
RST 2 D7 10h manzildan dasturni ishga tushiring
RST 3 DF 18 soat manzildan dasturni ishga tushiring
RST 4 E7 20h manzildan dasturni ishga tushiring
RST 5 EF 28h manzildan dasturni ishga tushiring
RST 6 F7 30h manzildan dasturni ishga tushiring
RST 7 FF Dasturni 38 soat manzilidan boshlang
SIM 30 Uzilish niqobini o‘rnatish (faqat 8085)
SPHL F9 SP ni HL dan yuklang
SHLD a16 22 a16 manziliga HL yozing
STA a16 32 a16 manziliga A ni yozing
STAX B 02 Loc(BC) ga A ni yozing
STAX D 12 Loc(DE) manziliga A ni yozing
STC 37 oʻrnatish bayrogʻi (CF=1)
SUB A 97 A dan A ayirish (aniq A)
SUB B 90 A dan B ni ayirish
SUB C 91 A dan C ni ayirish
SUB D 92 A dan D ni ayirish
SUB E 93 A dan E ni ayirish
SUB H 94 A dan H ayirish
SUB L 95 A dan L ni ayirish
SUB M 96 A dan M ayirish
SUI d8 D6 A dan d8ni ayiring
SBB A 9F A dan A ayirish (aniq A)
SBB B 98 A dan c ssuda B ayiriladi
SBB C 99 C ssudasini A dan ayiring
SBB D 9A A dan c ssuda D ayiriladi
SBB E 9B A dan c kredit Eni ayiring
SBB H 9C A dan c kredit H ni ayiring
SBB L 9D A dan c kredit L ni ayiring
SBB M 9E A dan c ssuda Mni ayiring
SBI d8 DE A dan c kredit d8ni ayiring
XCHG EB almashinuvi DE va ​​HL tarkibi
XTHL E3 Stackning yuqori qismidagi tarkibni HL tarkibi bilan almashtiring
XRA A AF XOR A bilan A (aniq A)
XRA B A8 XOR B A bilan
XRA C A9 XOR C A bilan
XRA D AA XOR D A bilan
XRA E AB Exclusive OR E bilan A
XRA H AC XOR H A bilan
XRA L AD Exclusive OR L bilan A
XRA M AE Exclusive OR Loc(HL) bilan A
XRI d8 EE XOR d8 A bilan
08, 10, 18, 38, CB, D 9, DD, ED va FD kodli buyruqlar MP 8080 buyruqlar tizimida mavjud emas.
Ba'zi i8080 buyruqlarini bajarish haqida Registrlar o'rtasida ma'lumotlarni uzatish buyruqlari bir baytda kodlangan (bu registrlarni manzillashning odatiy holidir) quyidagicha:
01DDDSSS
bu erda DDD - maqsad registr raqami; SSS - qabul qiluvchining registr raqami. Shunga ko'ra, 01 - yo'naltirish operatsiyasi kodi. Oldinga buyruqlar hech qanday bayroq o'rnatmaydi. Buyruqni bajarish uchun bitta mashina tsikli kerak bo'ladi.
Ro'yxatga olish raqamlarini kodlash (DDD va SSS)
Kod registri
000B
001 C
010D
011E
100 H
101 L
110 M
111A
M - HL registrlari juftligi bilan manzillangan xotira katakchasi tarkibi.
Xotira yacheykasidan registrga va registrdan xotiraga o'tkazish bilvosita registr manzillash yordamida amalga oshiriladi. Bu shuni anglatadiki, xotira katakchasi manzili HL registrlari juftligiga yuklanadi va MOV A, M kabi ko'rsatmalarda (bunday ko'rsatmalar 01DDD110 sifatida kodlangan), manzili HLda joylashgan xotira katagining mazmuni yuklanadi. ro'yxatdan o'tish A. Bunday ko'rsatmalar xotiraga kirishni talab qilganligi sababli, ularni bajarish uchun ikkita mashina tsikli kerak bo'ladi. Protsessor ko'rsatmalar to'plami juda tejamkor - u yuqori darajadagi tillarni qo'llab-quvvatlash uchun mo'ljallanmagan. Bularning barchasi keyinroq Intel protsessorlarida paydo bo'ladi.
E'tibor bering, odatiy dasturda o'rtacha ko'rsatmalar uzunligi ikki baytni tashkil qiladi, ammo keyingi 16-bitli 8086 protsessorlaridagi dasturlar uchun bu 4,1 ni tashkil qiladi. Shuning uchun mantiqiy dasturlarda 8 bitli protsessorlar 16 bitli protsessorlardan unchalik kam emas edi.
Xotira yozish buyruqlari xuddi shunday ishlaydi.
To'g'ridan-to'g'ri uzatish buyruqlari ikki baytdan iborat. Birinchi bayt opcode va registrni kodlaydi, ikkinchisi esa yuborilayotgan ma'lumotlar baytini o'z ichiga oladi:
00DDD110 XXXXXXXXX
Shubhasiz, buyruqni bajarish uchun ikki tsikl kerak bo'ladi.
Ushbu ko'rsatmaning yanada qiziqarli versiyasi MVI M,d8 bo'lib, xotiraga darhol ma'lumotlarning bir bayti yoziladi.
U shunday kodlangan:
00110110 XXXXXXXXX
Amalga oshirish uchta tsiklni oladi.
Darhol qiymatga ega bo'lgan registr juftlarini to'g'ridan-to'g'ri yuklash uchun LXI ko'rsatmalar guruhi juda foydali. Bu bitta buyruq bir vaqtning o'zida ikki bayt ma'lumotni ko'chirishga imkon beradi va dasturchilar tomonidan manzil arifmetik operatsiyalarida ham, butun sonlarni hisoblashda ham keng qo'llaniladi.
Buyruq shunday kodlangan:
00RP0001 xxxxxxxx zzzzzzzz
bu erda RP - registrlar juftligi; xxxxxxx - ma'lumotlarning past bayti, zzzzzzzzzz - yuqori bayt ma'lumotlar.
Uchta mashina siklini talab qiladigan buyruqni bajarishda ma’lumotlarning yuqori bayti registr juftining yuqori registriga, past bayti esa past registrga yuklanadi. Eng yuqori registrning nomi juftlik nomida birinchi bo'lib ko'rinadi.
LDA a16 akkumulyatorini to'g'ridan-to'g'ri yuklash buyrug'i unga buyruqning o'zida joylashgan manzilda ko'rsatilgan ma'lumotlarni yuklash imkonini beradi.
Buyruq uzunligi uch bayt. U shunday kodlangan:
00111010 xxxxxxxxxx zzzzzzzz
bu yerda xxxxxxxx manzilning past qismi; zzzzzzzz - manzilning etakchi qismi.
Bajarish to'rtta mashina tsiklini oladi.
STA buyrug'i amalda nosimmetrikdir.
LHLD addr buyrug'i (mnemonik "Load H va L Direct" degan ma'noni anglatadi) xotira katakchasi tarkibini L ga buyruqning ikkinchi va uchinchi baytlarida kodlangan manzilga yuklaydi (ya'ni, to'g'ridan-to'g'ri manzillash). H ga addr+1 katagidan bayt yuklanadi.
Buyruq beshta mashina siklida bajariladi. Teskari buyruq SHLD (Store H and L Direct).
LDAX reg buyrug'i (bilvosita yuk akkumulyatoridan mnemonik). BC yoki DE registrlar juftligi bilan manzillangan xotira katakchasi tarkibi ikki siklda akkumulyatorga yuklanadi.
STAX reg buyrug'ining teskari harakati.
Juda foydali XCHG jamoasi. (H)←>(D), (L)←>(E). Bir tsiklda amalga oshiriladi.
Arifmetik buyruqlar
Qo'shish bilan boshlaylik. ADD reg registrining mazmuni bilan akkumulyatorni qo'shing
Kodlash: 10000RRR
Bir tsiklda amalga oshiriladi. E'tibor bering, barcha arifmetik ko'rsatmalar bayroqlarni o'zgartiradi: Z, S, P, CY, AC.
Ko'p baytli qo'shishni amalga oshirish uchun tashishni hisobga olish kerak. Shuning uchun atamalarning past baytlari ADD buyrug'i yordamida qo'shiladi va barcha keyingi baytlar ADC reg buyrug'i yordamida qo'shiladi. Qo'shishda tashish bayrog'i tarkibini hisobga oladi. Ko'rinib turibdiki, bu ko'rsatmalar tizimida bir necha kilobayt uzunlikdagi butun sonlar bilan ishlaydigan arifmetikani yozish oson (bu muMATH-80 tizimida qilingan).
Ayirish buyruqlari xuddi shunday tuzilgan.
Qo'shish ko'rsatmalarining o'zgarishi manzil arifmetikasi va tsiklni tashkil qilish uchun zarur bo'lgan registrni oshirish ko'rsatmasi hisoblanadi.
INR reg
Kodlash: 00KKK100
CY tashqari barcha bayroqlar o'rnatiladi.
DCR reg buyrug'ining teskari harakati.
Juda kamdan-kam qo'llaniladi, DAA buyrug'i (Decimal Adjust Accumulator-dan mnemonik) quyidagi amallarni bajaradi: agar akkumulyatorning past nibble (nibble) tarkibi 9 dan kam bo'lsa yoki CY bayrog'i o'rnatilgan bo'lsa, u holda (A) + 6, agar yuqori nibble qiymati 9 dan katta bo'lsa yoki CY bayrog'i o'rnatilgan bo'lsa, u holda yuqori nibble tarkibiga 6 qo'shiladi.
Bu barcha bayroqlarni o'rnatadi.
Mantiqiy buyruqlar
ANA reg
CY bayrog'i o'chiriladi va AC o'rnatiladi (8085 da). 8080 mikroprotsessorida bu bayroqlarga operandlarning uchinchi bitlaridagi operatsiya natijasi ta'sir qiladi.
XRA va ORA guruh buyruqlarida CY va AC bayroqlari tozalanadi.
CMP reg - Registrni solishtiring, registr tarkibini akkumulyatordan ayiradi. Batareyaning tarkibi o'zgarmaydi. Bayroqlar ayirishda bo'lgani kabi o'rnatiladi. Z=1, agar (A) = (reg). CR = 1, agar (A) < (reg).
Chapga aylantirish RCL quyidagicha ishlaydi. Akkumulyatorning tarkibi bir pozitsiyani chapga siljitadi, ya'ni har bir yuqori bit yonidagi pastki bitning qiymatini oladi. Ettinchi bitning tarkibi akkumulyatorning nolinchi bitiga o'tadi:
(CY) ←(b7).
RRC - akkumulyator tarkibini o'ngga siljitadi. (CY)← (b0), (b7)←(b0).
RAL - (Tashish orqali chapga aylantiring). Avval (CY) akkumulyatorning eng muhim bitiga yoziladi, keyin esa uning eng muhim bitining mazmuni CY ga yoziladi.
Rasmiy ravishda: (b0)←(CY), (CY)←(b7).
Xuddi shunday o'ngga siljish bilan: (Bn)←(Bn+1), (CY)←(b0), (b7)←(CY).
CMA buyrug'i (Complement Accumulator-dan mnemonik) akkumulyatorning har bir bitini o'zgartiradi, ya'ni 0 1 ga aylanadi va aksincha. Hech qanday bayroq o'rnatilmagan.
CMC buyrug'i tashish bayrog'i tarkibini o'zgartiradi. Boshqa bayroqlar o'rnatilmagan.
Boshqaruv buyruqlariga kelsak, quyi dasturni chaqirish buyrug'ining bajarilishini ta'kidlash kerak.
CALL addr - bajarilganda CALL dan keyingi buyruqning manzili stekga yoziladi, stek ko'rsatkichining qiymati ikki marta kamayadi va boshqaruv belgilangan manzilga o'tkaziladi.
Pastki dasturdan qaytish buyrug'i manzilni stekning yuqori qismidan dastur hisoblagichiga yozadi, stek ko'rsatkichini 2 ga oshiradi va boshqaruvni yangi manzilga o'tkazadi. Shuning uchun, agar siz stekdagi qaytish manzilini o'zgartirsangiz, butunlay boshqa joyga o'tishingiz mumkin.
Biroq, buning uchun qulayroq imkoniyat bor - PCHL jamoasi. Bu sizga boshqaruvni HL registrlari juftligidagi manzilga o'tkazish imkonini beradi.
Ba'zan tizim dasturlari HLT to'xtatish buyrug'idan foydalanadi. Protsessor to'xtaydi, registrlar va bayroqlar o'rnatilmagan. Boshlash uchun Reset signalini berish muhimdir.
IN port - ko'rsatilgan raqam bilan portdan ma'lumotlar batareyaga o'qiladi. 3 sikl Bayroqlar o'zgarmaydi.
OUT porti - batareyaning tarkibi buyruqda ko'rsatilgan portga yozish uchun ma'lumotlar shinasiga joylashtiriladi.
Ko'rib turganingizdek, buyruq tizimi oddiy va oddiy. Hatto elektronika muhandislari ham buni osonlikcha o'zlashtirdilar. 8080, 8085 va Z-80 tizimlarining ko'plab emulyatorlari shaxsiy kompyuterlar uchun, shuningdek, talabalar uchun o'quv dasturlari uchun yozilgan.
Albatta, yigirma yil ichida siz BASICni unutishingiz mumkin. Shuning uchun, ehtimol, men ba'zi fikrlarni o'tkazib yubordim. Chief@pcweek.ru manziliga o'z qo'shimchalari va sharhlarini, o'quv dasturlari namunalarini va hokazolarni yuborgan har bir kishiga samimiy minnatdorchilik bildiraman.
Download 153,64 Kb.




Download 153,64 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Mavzu: Mikroprotsessor Intel 8080

Download 153,64 Kb.