A.THIÊT KÊ PHAĂN MEĂM Z80: IV.1.Tp leơnh Z80:

Một phần của tài liệu luận văn tốt nghiệp thiết kế mạch quang báo giao tiếp máy tính qua cổng máy in (Trang 55 - 65)

- Hình dáng cụa coơng nơi tiêp ở máy tính:

THIÊT KÊ PHAĂN MEĂM

A.THIÊT KÊ PHAĂN MEĂM Z80: IV.1.Tp leơnh Z80:

IV.1.Tp leơnh Z80:

Taơp leơnh bao goăm các chư thị đeơ cho vi xử lý thực hin các hốt đng chính xác. Lnh và dữ liu là các con sơ nhị phađn đưa vào CPU theo Bus dữ liu và đưa vào vùng nhớ đeơ cĩ sự khác nhau duy nhât là vi xử lý cât lnh vào thanh ghi và cơ câu giại mã cịn dữ liu thì đưa đên thanh ghi dữ liu hay ALU. Máy tính nhn lnh đưa vào dưới dáng lnh nhị phađn, dáng này gađy khĩ khn cho người viêt chương trình do vy người ta thường viêt chương trình dưới dáng gợi nhớ sau đĩ chuyeơn sang nhị phađn đeơ đưa vào CPU. Ở dáng gợi nhớ được chia làm hai phaăn :

- Mã cođng tác ( operation code ): cho biêt thao tác phại thực hin.

- Tác tơ ( operand ): được viêt sau mã cođng tác cho biêt trị sơ liu caăn xử lý. Các b vi xử lý khác nhau thì các tp lnh cũng khác nhau. Tp lnh cụa CPU Z80 cĩ khoạng 158 lnh chia thành 4 nhĩm lnh chính:

- Nhĩm lnh xử lí dữ liu. - Nhĩm lnh truyeăn dữ liu.

- Nhĩm lnh kieơm sốt chương trình. - Nhĩm lnh kieơm sốt tráng thái.

IV.1.1. Các phương pháp định vị địa chư. IV.1.1.1. Múc đích.

Cĩ nhieău phương pháp chư ra địa chư thanh ghi hay b nhớ mà lnh sẽ sử dúng người ta chĩn trong các phương pháp này tùy theo múc đích sau:

- Dùng lnh với điá chư càng ngaĩn càng tơt đeơ giạm yeđu caău veă dung lượng b nhớ cũng như thời gian truy xuât

- Đeơ vùng truy xuât b nhớ với sơ byte càng lớn càng tơt

- Muơn cĩ theơ thay đoơi giá trị địa chư thực sự mà khođng làm thay đoơi lnh . - Muơn định vị càng nhanh càng tơt .

- Phương pháp định vị càng đơn giạn càng tơt .

IV.1.1.2. Các phương pháp định vị địa chư.

Các phương pháp định vị thường dùng là: - Định vị trực tiêp .

Mt ví dú cụa lnh lối này là lnh đưa mt haỉng sơ vào thanh ghi tích lũy, haỉng sơ này là byte theo sau OPCODE.

b> Định vị tức thời mở rng.

Kieơu định vị này tương tự như tređn những byte theo sau OPCODE là tác tơ. - OP CODE 1-2 byte

- OPERAND nữa thâp - OPERAND nữa cao

Ví dú lnh cụa lối này đưa vào caịp thanh ghi HL 16 bit dữ liu

c> Định vị trong ođ boơ chính.

Z80 cĩ mt byte đaịt bit là Call. Lnh Call đaịt thanh ghi PC đên mt địa chư ở trang O. Lnh này cho phép theo sau nĩ là mt địa chư 16 bit chư tới mt vùng nhớ nào đĩ .

d>Định vị tương đơi.

Kieơu định vị này cho phép dịch chuyeơn 1 taăm địa chư là –128-127 từ địa chư A+2 . 8 bit theo sau OPCODE là địa chư A .

e> Định vị trực tiêp.

Chư đên ni dung cụa ođ nhớ (nn)

f> Định vị chư sơ.

Dùng hai thanh ghi IX và IY moêi thanh ghi 16 bit.

g> Định vị trực tiêp thanh ghi.

Sử dúng trực tiêp các thanh ghi trong CPU như A, B, C, D, E, H, L.

h> Định vị hieơu ngaăm.

Dùng thanh ghi tích luỹ ACC như là nơi chứa kêt quạ cụa phép tính sơ hĩc.

i> Định vị gián tiêp thanh ghi.

Sử dúng caịp thanh ghi (HL) , (BC), ( IX +d),(IY+d)

j> Định vị bit.

Trong các lnh SET, RESET, BIT.Cho phép CPU kieơm sốt đên từng bit trong ođ nhớ chư định .

k> Định vị ngn xêp.

Dùng thanh ghi con trỏ ngn xêp SP.

l> Kêt hợp các phương pháp định vị.

Nhieău lnh cĩ hơn mt tác tơ, chẳng hán như lnh sơ hay lnh dịch chuyeơn dữ liu .Trong trường này cĩ hai phương pháp được định vị sử dúng .

r: Các thanh ghi A,B,C,D,E,H,L.

S: Các thanh ghi A,B,C,D,E,H,L,(HL),(IX+d),(IY+d) dd: BC,DE, HL, SP

dd”:BC,DE,HL,nn qq: AF,BC,DE,DP ii: IX,IY

IV.1.2.1.1.Nhĩm lnh truyeăn 8 bit.

a> LD S’,S: lnh náp vào S’ với thanh ghi S.

b> LDA,(dd’): náp vào thanh ghi A với ni dung ođ nhớ cĩ địa chư và ni dung

trong thanh ghi dd’.

c> LD(dd’), A: náp vào ođ nhớ cĩ địa chư là ni dung cụa thanh ghi dd’với ni

dung cụa thanh ghi A.

d> LD A,I :A-I. e> LD I,A :A-I. f> LD A,R : A-R. g> LDR,A : A-R.

IV.1.2.1.2. Nhĩm lnh truyeăn 16 bit.

a> LD dd nn: Đưa trực tiêp dữ liu 16 bit nn vào thanh ghi dd .

b> LD dd (nn): đưa ni dung cụa ođ nhớ cĩ địa chư ođ nhớ cĩ địa chư nn vào

thanh ghi dd.

c> LD (nn), dd: náp noơi dung cụa thanh ghi dd vào ođ nhớ cĩ địa chư nn. d> LD ii, nn : đưa trực tiêp 16 bit dữ liu nn vào ii.

e> LD ii (nn) : đưa ni dung cụa ođ nhớ cĩ địa chư nn vào ii. f>EX DE,HL : Hĩan đoơi thanh ghi HL với thanh ghi DE. g> EX AF,AF’: hốn đoơi thanh ghi AF ‘với thanh ghi AF. h> EX X : hốn đoơi mt lúc ni dung cụa 3 thanh ghi

BC ⇔ BC’ DE ⇔ DE’ HL ⇔ HL’

i> EX (SP),HL: hốn đoơi ni dung cụa 2 thanh ghi HL

H( = ) SP +1 L (= ) SP

c>PUSH qq: chuyeơn dữ liu qq vào ngn xêp. Đaău tieđn ni dung cụa ngn

xêp giạm đi 1(SP-1) byte cao cụa caịp thanh ghi được đưa vào thanh ođ nhớ cĩ địa chư là ni dung cua SP. Ni dung cụa SP lái giạm theđm moơt (SP-2) byte thâp cụa caịp thanh ghi được đưa vào ođ nhớ cĩ địa chư là ni dung cụa SP.

d>PUSH ii: chuyeơn dữ liu từ thanh ghi vào ngn xêp.

e>POP qq: chuyeơn dữ liu vào ngn xêp ra thanh ghi qq, dữ liu cụa ođ nhớ trong

ngn xêp cĩ địa chư chứa trong SP được chuyeơn vào nữa thâp cụa thanh ghi, sau đĩ ni dung cụa ngn xêp tng leđn 1.

f>POP ii : chuyeơn dữ liu từ ngn xêp ra thanh ghi ii.

g>IND : náp ni dung cụa ođ nhớ chư ra bởi thanh ghi C vàođ nhớ chư ra bởi thanh

ghi HL, thanh ghi HL là B giạm 1.

IV.1.2.4. Lnh truyeăn khơi.

a> LDI : dịch chuyeơn ni dung cĩ ođ nhớ cĩ ni dung là HL và ođ nhớ cĩ địa chư

là DE,tng các thanh ghi HL và DE leđn 1. Giạm thanh ghi PC xuông 1.

b> LDIL : là lnh LDI và được lp cho đên khi nào thanh ghi PC baỉng khođng. c> LDD : dịch chuyeơn ni dung cụa ođ nhớ cĩ địa chư HL vào ođ hớ cĩ địa chư là

DE ,ni dung cụa các thanh ghi DE và HL , PC giạm 1.

d>LDDR: là lnh LDD và được laịp lái cho đên khi nào thanh ghi PC baỉng

khođng.

e> INI: Dịch chuyeơn ni dung ođ nhớ chư ra bởi thanh ghi C vào ođ nhớ địa chư cĩ

ni dung cụa HL ,thanh ghi HL taíng 1, thanh ghi B giạm 1.

f> INIR: là lnh INI lp đên khi B baỉng khođng. g> INDR: là lnh IND lp đên khi B baỉng khođng.

h> OUTI: náp ni dung ođ nhớ chư ra bởi HL vào ođ nhớ chư ra bởi C,HL giạm 1,B

giạm 1.

i> OTIR: là lnh OUTI cho dên khi B baỉng khođng.

j> OUTD: náp noơi dung ođ nhớ chư ra bởi HL vào ođ nhớ chư ra bởi C. Ni dung

cụa HL và B giạm 1.

k> OTDR: là lnh OUTD lp đên khi B baỉng khođng.

IV.1.3.Nhóm lnh xử lí dữ liu. IV.1.3.1. Lnh sơ hĩc và lun lí 8 bit

h>DECS : giạm noơi dung trong thanh ghi S xuông 1.

IV.1.3.2. Lnh sơ hĩc 16 bit.

a> ADD, HL,dd: cng dữ liu trong thanh ghi dd với dữ liu trong thanh ghi HL,

kêt quạ chứa tái thanh ghi HL, khođng lưu ý đên sơ nhớ.

b> ADC HL,dd : cng dữ liu trong thanh ghi dd với dữ liu trong thanh ghi HL

và luođn cạ sơ nhớ, kêt quạ chứa tái HL.

c> SBC HL,dd : lây dữ liu trong thanh ghi HL trừ đi dữ liu trong thanh ghi dd

và trừ luođn sơ nhớ, kêt quạ tái thanh ghi HL.

d> ADD IX,pp : cng dữ liu trong thanh ghi IX với dữ liu trong thanh ghi

pp kêt quạ chứa tái thanh ghi IX.

e> ADD IY,pp: cng dữ liu trong thanh ghi IY với dữ liu trong thanh ghi pp

kêt qụa chứa tái thanh ghi IY.

f> INC dd : tng ni dung cụa thanh ghi dd leđn 1. g> DEC dd: giạm noơi dung cụa thanh ghi dd xuông 1. h> INC ii : tng ni dung cụa caịp thanh ghi ii leđn 1. i>DEC ii : giạm noơi dung cụa caịp thanh ghi xuông 1.

IV.1.3.3. Lnh quay vịng dịch.

a> RRD : đaơy dữ liu thanh ghi A veă phía phại 1 bit, bit O đưa vào CY.

b> RLA : đaơy dữ liu trong thanh ghi A veă phía trái 1 bit, bit thứ 7 đưa vào CY.

c> RRCA : đaơy dữ liu trong thanh ghi A bit 0 đưa vào CY .Dữ liu cụa Cy vào bit

f> RLS : đaơy dữ liu trong thanh ghi S veă phía trái 1 bit ,bit b7 vào Cy.

g> RRCS : đaơy dữ liu trong thanh ghi S veă phía phại 1 bit, bit b0 vào Cy và

dữ liu từ Cy vào b7.

h> RLCS : đaơy dữ liu trong thanh ghi S veă phía trái 1 bit, bit b7 vào Cy, dữ

liu từ Cy vào bit b0.

i> SLAS : dữ liu trong thanh ghi S dịch trái 1 bit, bit b7 bạo tồn bit b0 bị

xóa.

j> SRAS : dữ liu trong thanh ghi S dịch phại 1 bit bit b0 bạo toàn bit b7 bị

m> RRD: dịch 4 bit thâp dữ liu trong thanh ghi A vào nữa cao cụa dữ liu

naỉm trong ođ nhớ chư ra bởi thanh ghi HL, 4 bit cao cụa ođ nhớ dịch xuơng nữa thâp, 4 bit thâp đưa lái vào thanh ghi A.

IV.1.3.4. Lnh so sánh

a> CPS : thực hin phép so sánh giữa ni dung trong thanh ghi A với ni

dung trong thanh ghi S, kêt quạ tác đng đên các cờ. Tráng thái khođng ạnh hưởng đên thanh ghi A.

b> CPI : thực hin phép so sánh giữa ni dung cụa thanh ghi A với ni dung

chứa trong thanh ghi HL , kêt quạ khođng ạnh hưởng đên ni dung trong thanh ghi A, đoăng thời thực hin tng ni dung thanh ghi HL leđn 1. Kêt quạ được đưa vào thanh ghi HL và thực hin phép trừ ni dung thanh ghi B đi 1 kêt quạ chứa lái vào B.

c> CPIR : là lnh so sánh CPI cho đên khi ni dung trong thanh ghi A baỉng

với ni dung cụa ođ nhớ chư ra bởi thanh ghi HL và ni dung cụa thanh ghi B trở veă 0

d> CPB : thực hin phép trừ giữa ni dung trong thanh ghi A với ni dung

cụa ođ nhớ chư ra bởi ni dung HL, kêt quạ khođng ạnh hưởng đên thanh ghiA và đoăng thời tng ni dung HL leđn 1 và giạm ni dung trong thanh ghi B xuông 1.

e> CPDK : thực hin lnh CPI cho đên khi thanh ghi A baỉng với ni dung ođ

nhớ chư ra bởi thanh ghi HL và ni dung thanh ghi B trở veă 0.

khođng thì tiêp túc.

e> JP (HL) : nhạy sang địa chư là ni dung cụa thanh ghi HL. f> JP (ii) :nhạy sang địa chư là ni dung cụa thanh ghi ii. g> DJNZ: được náp B- 1 vào B, với 2 khạ nng :

+ nêu B =0 tiêp túc

+ nêu B = 0 nhạy sang địa chư kê tiêp + e

h>CALL nn : caĩt byte cao cụa địa chư kê tiêp vào ngn xêp SP –1. Cât byte

thâp cụa địa chư kê tiêp SP – 2 gán cho địa chư kê tiêp.

i> CALL cc, nn : nêu thỏa mãn cờ tráng thái cc thì thực hin nêu khođng thì

tiêp túc.

j> RET : gán ngn xêp cho byte thâp cụa địa chư kê tiêp. Gán ngn xêp kê tiêp

cho byte cao cụa địa chư kê tiêp.

k> RET cc : nêu thỏa mãn cờ tráng thái cc thì thực hin RET nêu khođng thì tiêp

túc.

l> RETN : gĩi Ret từ chương trình phúc vú ngaĩn NMI (ngaĩt khođng maịt ná). m> RETI : gĩi Ret từ chương trình phúc vú ngaĩt INT.

n> RSTP :

+Gán ngn xêp SP-1 cho byte cao cụa địa chư kê tiêp. + Gán ngn xêp SP-2 cho byte thâp cụa địa chư.

+ Nhp 0 vào byte cao cụa địa chư kê tiêp. + Nhp p vào byte thâp cụa địa chư kê tiêp.

IV.1.5.Nhĩm lnh kieơm sốt CPU và kieơm tra bit. IV.1.5.1.Lnh kieơm sốt CPU.

a> DAA : chưnh BCD cho phép +.

b> CPT : nghịch đạo b tích lũy biên đoơi bit 0 thành bit 1 và ngược lái. c> NEG : che 4 bit thâp và thanh ghi A. Kêt quạ ghi vào A.

d> CCF : lnh đạo bit CARRY.

e> SCF : leơnh thiêt lp bit Carry ở tráng thái khođng tác đng. f> NOP : khi gaịp lnh này CPU khođng làm gì cạ chờ chu kỳ mới.

g> HALT : lnh ngừng hốt đng chờ tín hiu ngaĩt .INT,NMI hay RESET. h> DI : tât cạ ngaĩt đơi với INT.

IV.2.1.Giới thiu.

Ở các phaăn trước đã trình bày cơ sở lý thuyêt và câu trúc phaăn cứng cụa KIT Z80. Phaăn cứng cụa KIT Z80 cũng như mĩi phaăn cứng cụa các h thơng máy tính khác đeău khođng theơ hốt đng được nêu như khođng cĩ phaăn meăm đieău khieơn. Phaăn meăm đieău khieơn là mt tp hợp các lnh chư ra các thao tác mà CPU phại thực hin. Phaăn meăm đieău khieơn CPU được chia thành hai lối chính :

+Phaăn meăm h thơng :

Được náp vào ROM, được CPU đĩc tới ngay từ lúc mới câp đin. Phaăn meăm này đieău khieơn xử lý các thao tác như nhp, xuât dữ liu. Phaăn meăm này được viêt baỉng ngođn ngữ ASEMBLE và được dịch ra mã máy tương ứng với CPU-Z80.

+Phaăn meăm sử dúng :

Là phaăn meăm cụa người sử dúng náp vào được lưu trữ trong ROM hoaịc RAM, hay đĩa đeơ đieău khieơn CPU thực hin các thao tác mà người sử dúng yeđu caău. Phaăn meăm này cĩ theơ viêt baỉng ngođn ngữ ASEMBLE, hay ngođn ngữ câp cao như : C, BASIC, PASCAL, FORTRAN.

Nói chung ngođn ngữ máy tính cĩ nhieău lối nhưng khođng theơ đieău khieơn trực tiêp CPU được. CPU chư cĩ theơ tiêp thu trực tiêp ngođn ngữ máy mà thođi. Do vy các chương trình đieău khieơn được viêt baỉng ngođn ngữ ASEMBLE hay ngođn ngữ câp cao đeău phại dịch ra ngođn ngữ máy. Cođng vic này cĩ theơ tiên hành baỉng tay hay sử dúng hay sử dúng mt chương trình bieđn dịch.

IV.2.2.Cách thức lp trình.

Trong vic lp trình cũng như cho chương trình cháy, đeău phại cĩ mt qui trình. Các bước caăn thiêt cho vic viêt mt chương trình cháy như sau.

- Naĩm vững ni dung và ý nghiã cụa chương trình. - Hốch định lưu đoă cụa chương trình.

- Viêt chương trình.

- ASEMBLE baỉng tay chương trình đã được viêt. - Náp chương trình vào b nhớ.

- Kieơm tra lái các dữ liu đưa vào đã dùng hay khođng. - Cho chương trình cháy.

- Giám định kêt qụa.

IV.2.3.Chức nng cụa chương trình h thơng.

- Nêu phím được nhân là phím sơ thì CPU sẽ tiên hành thay đoơi điá chư hoaịc thay đoơi ni dung cụa mi ođ nhớ.

- Nêu là phím chức nng thì CPU sẽ thực hin các chức nng này được đaịt cho phím đĩ. Các chức nng cụa phím như sau.

+Phím ↑: gĩi chương trình thi hành chương trình cụa người sữ dúng ngồi ra nĩ cịn dùng đeơ tng điá chư hin hành leđn 1.

+Phím ↓ : náp vào ni dung hieơn thị được đưa vào b nhớ. Ngồi ra nĩ cịn cĩ chức nng này giạm điá chư hin hành xuơng 1.

+Phím Esc : Reset tồn b h thơng

c>Quạn lý b nhớ.

Chương trình h thơng sẽ giúp CPU truy xuât chính xác từng vùng nhớ tuỳ theo yeđu caău cụa người sử dúng. CPU cĩ theơ thực hin được các thao tác tređn b nhớ là

-Đĩc dữ liu từ ROM và RAM. -Viêt dữ liu vào RAM.

d> Quạn lý các thiêt bị ngối vi.

Chương trình h thơng giúp CPU truy xuât đên các thiêt bị ngối vị khác thođng qua CARD giao tiêp. Cođng vic này giúp phát huy tác dúng to lớn cụa CPU.

IV.2.4.Phađn tích chương trình h thơng.

Mođït h thơng vi xử lý muơn hốt đng được caăn phại cĩ chương trình nguoăn đeơ khởi táo h thơng, chương trình này phại phù hợp với thiêt kê phaăn cứng, vic thiêt kê giữa phaăn cứng và phaăn meăm phại cađn đơi sao cho phaăn meăm khođng quá phức táp.

Một phần của tài liệu luận văn tốt nghiệp thiết kế mạch quang báo giao tiếp máy tính qua cổng máy in (Trang 55 - 65)

Tải bản đầy đủ (DOC)

(131 trang)
w