Taơp leơnh 8952 cĩ 255 lnh goăm 139 lnh 1 byte, 92 lnh 2 byte và 24leơnh 3 byte. leơnh 3 byte.
III.1 Các chê đ đánh địa chư:a/ Địa chư thanh ghi: a/ Địa chư thanh ghi:
µC8952 cĩ bơn bank thanh ghi, mi bank cĩ 8 thanh ghi đánh sơ từ R0
LUN VN TƠT NGHIP GVHD: HUỲNH VN KIEƠM
Muơn chĩn bank thanh ghi nào ta chư caăn gán các bít nhị phađn thích
hợp vào RS1 (PSW.4) và RS0 (PSW.3) trong thanh ghi tráng thái chươngtrình (PSW). trình (PSW).
Ngồi ra, mt sơ thanh ghi đaịc bit như thanh ghi tích lũy, thanh ghi con trỏ dữ liu cũng được xác định trong các lnh tređn neđn khođng caăn bit địa chư.
Trong các lnh này thanh ghi tích lũy được kí hiu là “A”, con trỏ dữliu là “DPTR”, thanh ghi đêm chương trình là “PC”, cờ nhớ là “C”, caịp liu là “DPTR”, thanh ghi đêm chương trình là “PC”, cờ nhớ là “C”, caịp thanh ghi tích lũy là “AB”.
b/ Địa chư trực tiêp:
Trong chê đ này, các thanh ghi beđn trong 8952 được đánh địa chư trựctiêp baỉng 8 bits địa chư naỉm trong byte thứ hai cụa mã lnh. tiêp baỉng 8 bits địa chư naỉm trong byte thứ hai cụa mã lnh.
Dù vy, trình hợp dịch cho phép gĩi teđn các thanh ghi chức nng đaịc
bit (cĩ địa chư trực tiêp từ 80H đên FFH).
Ví dú, P0 cho Port 0, TMOD cho thanh ghi chê đ timer, …
c/ Địa chư gián tiêp:
R0 và R1 được dùng đeơ chứa địa chư tám ođ nhớ mà lnh tác đng đên.Người ta qui ước dùng dâu @ trước R0 hoaịc R1. Người ta qui ước dùng dâu @ trước R0 hoaịc R1.
d/ Địa chư tức thời:
Mã leơnh n n n
Địa chư thanh ghi
Mã lnh Địa chư trực tiêp
Địa chư trực tiêp
Mã leơnh i
Người ta dùng dâu # trước các tốn háng tức thời. Các tốn háng đĩ cĩtheơ là mt haỉng sơ, mt kí sơ hay mt bieơu thức tốn hĩc …Trình hợp dịch theơ là mt haỉng sơ, mt kí sơ hay mt bieơu thức tốn hĩc …Trình hợp dịch sẽ tự đng tính tốn và thay thê dữ liu vào mã lnh.
e/ Địa chư tương đơi:
Địa chư tương đơi được dùng trong các lnh nhạy.
µC8952 dùng giá trị 8 bit cĩ dâu đeơ cng theđm vào thanh ghi đêm
chương trình (PC).
Taăm nhạy cụa lnh này trong khoạng từ –128 đên 127 ođ nhớ. Trước khicng, thanh ghi PC sẽ tng đên địa chư theo sau lnh nhạy roăi tính tốn cng, thanh ghi PC sẽ tng đên địa chư theo sau lnh nhạy roăi tính tốn địa chư offset caăn thiêt đeơ nhạy đên địa chư yeđu caău.
Như vy, địa chư mới là địa chư tương đơi so với lnh kê tiêp chứ khođngphại bạn thađn lnh nhạy. Thường lnh này cĩ lieđn quan đên nhãn được phại bạn thađn lnh nhạy. Thường lnh này cĩ lieđn quan đên nhãn được định nghĩa trước.
f/ Địa chư tuyt đơi :
Địa chư tuyt đơi chư dùng trước các lnh ACALL và AJIMP.
Các lnh 2 byte này dùng đeơ rẽ nhánh vào mt trang 2Kbyte cụa bnhớ chương trình baỉng cách câp 11 bit địa chư thâp (A0-A10) đeơ xác định nhớ chương trình baỉng cách câp 11 bit địa chư thâp (A0-A10) đeơ xác định địa chư đích trong trang mã. Cịn 5 bit cao cụa địa chư đích chính là 5 bit hin hành trong thanh ghi đêm chương trình.
Vì vy, địa chư cụa lnh theo sau lnh rẽ nhánh và địa chư đích cụa lnhrẽ nhánh caăn phại cùng trang mã 2Kbyte (cĩ cùng 5 bits địa chư cao). rẽ nhánh caăn phại cùng trang mã 2Kbyte (cĩ cùng 5 bits địa chư cao).
Mã lnh Dữ liu tức thời
Địa chư tức thời.
Mã lnh Offset tương đơi
LUN VN TƠT NGHIEƠP GVHD: HUỲNH VN KIEƠM
A15 A10 A9 A0
XÁC ĐỊNH
TRANG MÃ XÁC ĐỊNH ĐỊA CHƯ TRONG TRANG MÃ
g/ Địa chư dài :
Địa chư dài chư dùng cho lnh LCALL và LJIMP. Các lnh này chiêm 3byte và dùng 2 byte sau (byte 2 và byte 3) đeơ định địa chư đích cụa lnh byte và dùng 2 byte sau (byte 2 và byte 3) đeơ định địa chư đích cụa lnh (16 bit). Ưu đieơm cụa lnh này là cĩ theơ sử dúng trong tồn b vùng nhớ 64 Kbyte.
Tuy nhieđn, lnh này chiêm nhieău byte và l thuc vào vị trí vùng nhớ.
h/ Địa chư tham chiêu:
Địa chư tham chiêu dùng mt thanh ghi cơ bạn (hoaịc thanh ghi đêmchương trình PC hoaịc thanh ghi con trỏ dữ liu DPTR) và địa chư offset chương trình PC hoaịc thanh ghi con trỏ dữ liu DPTR) và địa chư offset (trong thanh ghi tích lũy A) đeơ táo địa chư được tác đng cho các lnh JMP hoaịc MOVC.
Các bạng nhạy và bạng tìm kiêm d dàng được táo ra đeơ sử dúng địachư tham chiêu. chư tham chiêu.
Địa chư cơ bạn Offset
PC hoaịc DPTR + ACC = Địa chư caăn truy xuât
Địa chư tham chiêu.
A10-A8 Mã lnh Offset tương đơi
Địa chư tuyt đơi
Mã lnh A15 - A8 A7 – A0
Taơp leơnh cụa 8952 được chia làm 5 nhĩm:
Sơ hĩc
Lun lí
Chuyeơn dữ liu
Chuyeơn đieău khieơn
Các chư dăn thiêt laơp leơnh:
Rn : Thanh ghi R0 đên R7 cụa bank thanh ghi được chĩn.
Data : 8 bit địa chư vùng dữ liu beđn trong. Nĩ cĩ theơ là vùng RAM dữ liu trong (0-127) hoaịc các thanh ghi chức nng đaịc bit.
@Ri : 8 bit vùng RAM dữ liu trong (0-255) được đánh địa chư gián tiêp qua thanh ghi R0 hoaịc R1.
#data : Haỉng 8 bit chứa trong cađu leơnh.
#data16 : Haỉng 16 bit chứa trong cađu leơnh.
addr16 : 16 bit địa chư đích được dùng trong lnh LCALL và LJMP. addr11 : 11 bit địa chư đích được dùng trong lnh ACALL và AJMP.
rel :Byte offset 8 bit cĩ dâu được dùng trong lnh SJUMP và những lnh
nhạy cĩ đieău kin.
bit : Bit được định địa chư trực tiêp trong RAM dữ liu ni hoaịc các thanh ghi chức nng đaịc bit.
a/ Nhĩm lnh xử lí sơ hĩc:
ADD A, Rn (1 byte, 1 chu kì máy) : Cng ni dung thanh ghi Rn vào thanh ghi A.
ADD A, data (2, 1) : Cng trực tiêp 1 byte vào thanh ghi A.
AAD A, @Ri (1, 1) : Cng gián tiêp ni dung RAM chứa tái địa chư được khai báo trong Ri vào thanh ghi A.
ADD A, #data (2, 1) : Cng dữ liu tức thời vào A.
ADDC A, Rn (1, 1) : Cng thanh ghi và cờ nhớ vào A.
ADDC A, data(2, 1) : Cng trực tiêp byte dữ liu và cờ nhớ vào A.
ADDC A, @Ri(1, 1) : Cng gián tiêp ni dung RAM và cờ nhớ vào A.
ADDC A, #data (2, 1) : Cng dữ liu tức thời và cờ nhớ vào A.
SUBB A, Rn (1, 1) : Trừ ni dung thanh ghi A cho ni dung thanh ghi Rn và cờ nhớ.
SUBB A, data(2, 1) : Trừ trực tiêp A cho mt sơ và cờ nhớ.
SUBB A, @Ri (1, 1) : Trừ gián tiêp A cho mt sơ và cờ nhớ.
SUBB A, #data (2, 1) : Trừ ni dung A cho mt sơ tức thời và cờ nhớ.
INC A (1, 1) : Tng ni dung thanh ghi A leđn 1.
LUN VN TƠT NGHIP GVHD: HUỲNH VN KIEƠM
INC data (2, 1) : Tng dữ liu trực tiêp leđn 1.
INC @Ri (1, 1) : Tng gián tiêp ni dung vùng RAM leđn 1.
DEC A (1, 1) : Giạm noơi dung thanh ghi A xuông 1.
DEC Rn (1, 1) : Giạm noơi dung thanh ghi Rn xuông 1.
DEC data (2, 1) : Giạm dữ liu trực tiêp xuơng 1.
DEC @Ri (1, 1) : Giạm gián tiêp ni dung vùng RAM xuơng 1.
INC DPTR (1, 2) : Taíng ni dung con trỏ dữ liu leđn 1.
MUL AB (1, 4) : Nhađn ni dung thanh ghi A với ni dung thanh ghi B.