Các chê đ định địa chư

Một phần của tài liệu luận văn tốt ngiệp thiết kế thi công và viết chương trình điều khiển mạch thực hành cho z80 cpu giao tiếp với máy tính qua ngõ máy in (Trang 26 - 29)

Haău hêt các lnh Z80 hốt đng tređn dữ liu trong thanh ghi CPU, b nhớ ngồi, hay coơng I/O. Các chê đ định địa chư chư ra cách mà địa chư cụa dữ liu được táo ra trong mi lnh là như thê nào. Phaăn dưới cho mt tĩm taĩt sơ lược cho các lối định địa chư dùng trong Z80 :

Định địa chư tức thời :

Trong cách định địa chư này byte theo sau mã lnh trong b nhớ chứa tốn háng thực. Mã leơnh 1 hay 2 byte

Toán háng D7 D0

Ví dú: náp thanh ghi tích lũy với haỉng sơ, ở đađy haỉng sơ là byte ngay sau mã lnh.

Định địa chư tức thời mở rng :

Cách định địa chư này là sự mở rng cụa cách định địa chư tức thời trong đĩ hai byte theo sau mã lnh là các toán háng.

Mã lnh 1 hay 2 byte

Toán háng Vị trí thâp Tốn háng Vị trí cao

Ví dú: load caịp thanh ghi HL ( thanh ghi 16 bit ) với 16 bit dữ liu ( 2 byte ).

Định địa chư trang khođng :

Z80 cĩ lnh 1 byte đaịc bit Call đeơ nhạy tới vị trí bât kỳ trong 8 vị trí trong trang khođng cụa boơ nhớ. Lnh này đaịt PC tới địa chư hiu quạ trong trang khođng. Sự tin dúng cụa lnh này là chư caăn mt byte đơn và 1 địa chư 16 bit xác định vị trí chương trình con, do đĩ tiêt kim được b nhớ.

Mã lnh 1 byte

B7 B0 Địa chư cĩ giá trị là ( B5 B4 B3 000) 2

Định địa chư tương đơi :

Định địa chư tương đơi dùng mt byte dữ liu theo sau mã lnh đeơ xác định đ dời từ chương trình hin tái tới nơi mà chương trình Jump cĩ theơ xạy ra. Đ dời được thực hin baỉng cách cng sơ bù hai vào địa chư cụa mã lnh:

Mã lnh Jump relative (1 byte mã lnh )

Tốn háng Cng thay sơ bù 2 8 bit tới địa chư ( A+2)

Sự tin lợi cụa định địa chư tương đơi là nĩ cho phép nhạy tới vị trí gaăn đĩ mà chư caăn hai byte b nhớ. Do đĩ, những lnh này cĩ theơ giạm thieơu nhu caău b nhớ. Đ dời cĩ theơ từ +127 đên -128 từ địa chư A+2. Vì vy toơng đ dời cụa lnh nhạy tương đơi là +129 đên -126.

Định địa chư mở rng :

Định địa chư mở rng cung câp hai byte (16 bit) địa chư trong câu trúc lnh. Dữ liu cĩ theơ là địa chư đích chương trình cĩ theơ nhạy tới hoaịc nĩ cĩ theơ là địa chư cụa tốn háng.

Mã lnh 1 hay 2 byte

Địa chư thâp đên tốn háng thâp Địa chư cao đên tốn háng cao

Định địa chư mở rng dùng nhạy từ vị trí này tới vị trí khác trong b nhớ hay náp và chứa dữ liu trong vị trí b nhớ bât kỳ. Khi định địa chư mở rng được dùng đeơ xác định địa chư nguoăn hay đích cụa tốn háng, ký hiu (nn) sẽ được dùng đeơ chư ra ni dung b nhớ tái nn, nn là địa chư 16 bit được chư ra trong câu trúc lnh. Đieău này cĩ nghĩa là hai byte b nhớ nn được dùng như là con trỏ chư đên vị trí b nhớ. Dâu ngoaịc cĩ nghĩa là giá trị trong chúng được dùng như là con trỏ chư đên vị trí b nhớ. Ví dú (1200) chư ni dung cụa b nhớ tái vị trí 1200.

Định địa chư chư sơ :

Trong lối định địa chư này, byte dữ liu theo sau mã lnh chứa đ dời được cng với ni dung cụa thanh ghi chư sơ (Mã lnh xác định thanh ghi chư múc được dùng ) đeơ táo ra con trỏ tới b nhớ.

Mã lnh 2 byte mã lnh Mã lnh 2 byte mã lnh

Sự thay Địa chư tređn thanh ghi chư múc đeơ táo pointer đên b nhớ

Ví dú cụa lnh chư múc là load ni dung cụa vị trí b nhớ ( thanh ghi chư múc + đ dời ) vào trong thanh ghi tích lũy. Đ dời là sơ bù hai cĩ dâu. Định địa chư cĩ chư sơ đơn giạn hĩa chương trình dùng bạng dữ liu cĩ thanh ghi chư múc chư đên đaău bạng. Hai thanh ghi chư múc được cung câp vì lý do thường caăn hai hay nhieău bạng. Hai thanh ghi chư múc trong Z80 là IX và IY. Đeơ định địa chư chư múc ta dùng ( IX + d ) hay ( IY + d ). Ở đađy d là đ dời naỉm sau mã lnh. Dâu ngoaịc chư ra raỉng giá trị được dùng như là con chỏ chư đên b nhớ ngồi.

Định địa chư thanh ghi :

Nhieău mã lnh cụa Z80 chư rõ thanh ghi nào được dùng. Ví dú load dữ liu trong thanh ghi B sang thanh ghi C.

Định địa chư ngaăm định :

Định địa chư ngaăm định là ám chư đên các phép tốn mà mã lnh tự đng ngaăm định mt hay nhieău thanh ghi CPU như là nơi chứa các tốn háng. Ví dú như tp các phép tốn sơ hĩc thanh ghi tích lũy luođn được ngaăm định là nơi chứa kêt quạ.

Định địa chư gián tiêp thanh ghi :

Lối định địa chư này caăn caịp thanh ghi 16 bit ( như là HL ) đeơ chư tới vị trí bât kỳ trong b nhớ. Lối lnh này rât mánh và nĩ được dùng trong 1 khoạng rng các ứng dúng .

Ví dú load thanh ghi tích lũy với dữ liu trong b nhớ được trỏ bởi ni dung thanh ghi HL Định địa chư chư múc là mt theơ cụa định địa chư thanh ghi gián tiêp, khác nhau ở ch đ dời được cng theđm trong định địa chư chư múc. Định địa chư thanh ghi gián tiêp cho phép truy xuât b nhớ tức thời đơn giạn nhưng hữu hiu. Lnh tìm và truyeăn khơi trong Z80 là lối mở rng cụa định địa chư này, ở đĩ thanh ghi được tng, giạm và so sánh mt cách tự đng, Ký hiu cho biêt vic định địa chư thanh ghi gián tiêp là dâu ngoaịc đơn bao quanh teđn thanh ghi (được dùng như là pointer). Ví dú ký hiu (HL) chư raỉng ni dung thanh ghi HL được dùng như là mt pointer chư tới ođ nhớ. Thođng thường định địa chư gián tiêp thanh ghi dùng đeơ xác định các tốn háng 16 bit. Trong trường hợp này, ni dung thanh ghi chư đên byte thâp hơn cụa tốn háng trong khi ni dung thanh ghi cng 1 chư đên byte cao cụa tốn háng.

Định địa chư bit :

Z80 chứa mt lượng lớn tp các lnh lieđn quan đên bit: set, reset và test. Những lnh này cho phép bât kỳ vị trí b nhớ nào hoaịc thanh ghi CPU sử dúng phép tốn bit thođng qua 1 trong 3 chê đ định địa chư trước đĩ ( thanh ghi, thanh ghi gián tiêp và chư múc ). 3 bit trong mã lnh chư rõ thanh ghi nào được dùng.

Sự kêt hợp các chê đ định địa chư:

Nhieău leơnh dài hơn mt tốn háng ( như là lnh sơ hĩc hay load ). Trong trường hợp này hai kieơu định địa chư cĩ theơ được tiên hành. Ví dú, load cĩ theơ dùng định địa chư tức thời đeơ xác định nguoăn và định địa chư thanh ghi gián tiêp hay định địa chư chư múc đeơ xác định đích.

Một phần của tài liệu luận văn tốt ngiệp thiết kế thi công và viết chương trình điều khiển mạch thực hành cho z80 cpu giao tiếp với máy tính qua ngõ máy in (Trang 26 - 29)

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

(148 trang)
w