TAƠP LEƠNH CỤA 8952:

Một phần của tài liệu Cacs phương phá điều chỉnh động cơ một chiều kích từ độc lập (Trang 67)

Taơp leơnh 8952 có 255 leơnh goăm 139 leơnh 1 byte, 92 leơnh 2 byte và 24 leơnh 3 byte. leơnh 3 byte.

III.1 Các chê đoơ đánh địa chư:a/ Địa chư thanh ghi: a/ Địa chư thanh ghi:

µC8952 có bôn bank thanh ghi, moêi bank có 8 thanh ghi đánh sô từ R0 đên R7. Tái moêi thời đieơm chư có moơt bank thanh ghi được tích cực. đên R7. Tái moêi thời đieơm chư có moơt bank thanh ghi được tích cực.

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ương hợp vào RS1 (PSW.4) và RS0 (PSW.3) trong thanh ghi tráng thái chương trình (PSW).

Ngoài ra, moơt sô thanh ghi đaịc bieơt như thanh ghi tích lũy, thanh ghi con trỏ dữ lieơu cũng được xác định trong các leơnh tređn neđn khođng caăn bit địa chư.

Trong các leơnh này thanh ghi tích lũy được kí hieơu là “A”, con trỏ dữ lieơu là “DPTR”, thanh ghi đêm chương trình là “PC”, cờ nhớ là “C”, caịp lieơu 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ê đoơ này, các thanh ghi beđn trong 8952 được đánh địa chư trực tiêp baỉng 8 bits địa chư naỉm trong byte thứ hai cụa mã leơnh. tiêp baỉng 8 bits địa chư naỉm trong byte thứ hai cụa mã leơnh.

Dù vaơy, trình hợp dịch cho phép gĩi teđn các thanh ghi chức naíng đaịc bieơt (có địa chư trực tiêp từ 80H đên FFH). bieơt (có địa chư trực tiêp từ 80H đên FFH).

Ví dú, P0 cho Port 0, TMOD cho thanh ghi chê đoơ timer, …

c/ Địa chư gián tiêp:

R0 và R1 được dùng đeơ chứa địa chư tám ođ nhớ mà leơnh tác đoơ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ã leơnh Đị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 toán háng tức thời. Các toán háng đó có theơ là moơt haỉng sô, moơt kí sô hay moơt bieơu thức toán hĩc …Trình hợp dịch theơ là moơt haỉng sô, moơt kí sô hay moơt bieơu thức toán hĩc …Trình hợp dịch sẽ tự đoơng tính toán và thay thê dữ lieơu vào mã leơnh.

e/ Địa chư tương đôi:

Địa chư tương đôi được dùng trong các leơnh nhạy.

µC8952 dùng giá trị 8 bit có dâu đeơ coơng theđm vào thanh ghi đêm

chương trình (PC).

Taăm nhạy cụa leơnh này trong khoạng từ –128 đên 127 ođ nhớ. Trước khi coơng, thanh ghi PC sẽ taíng đên địa chư theo sau leơnh nhạy roăi tính toán coơng, thanh ghi PC sẽ taíng đên địa chư theo sau leơnh nhạy roăi tính toán địa chư offset caăn thiêt đeơ nhạy đên địa chư yeđu caău.

Như vaơy, địa chư mới là địa chư tương đôi so với leơnh kê tiêp chứ khođng phại bạn thađn leơnh nhạy. Thường leơnh này có lieđn quan đên nhãn được phại bạn thađn leơnh nhạy. Thường leơnh này có lieđn quan đên nhãn được định nghĩa trước.

f/ Địa chư tuyeơt đôi :

Địa chư tuyeơt đôi chư dùng trước các leơnh ACALL và AJIMP.

Các leơnh 2 byte này dùng đeơ rẽ nhánh vào moơt trang 2Kbyte cụa boơ nhớ 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 hieơn hành trong thanh ghi đêm chương trình.

Vì vaơy, địa chư cụa leơnh theo sau leơnh rẽ nhánh và địa chư đích cụa leơnh rẽ 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ã leơnh Dữ lieơu tức thời (adsbygoogle = window.adsbygoogle || []).push({});

Địa chư tức thời.

Mã leơnh Offset tương đôi

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 leơnh LCALL và LJIMP. Các leơnh này chiêm 3 byte và dùng 2 byte sau (byte 2 và byte 3) đeơ định địa chư đích cụa leơnh byte và dùng 2 byte sau (byte 2 và byte 3) đeơ định địa chư đích cụa leơnh (16 bit). Ưu đieơm cụa leơnh này là có theơ sử dúng trong toàn boơ vùng nhớ 64 Kbyte.

Tuy nhieđn, leơnh này chiêm nhieău byte và leơ thuoơc vào vị trí vùng nhớ.

h/ Địa chư tham chiêu:

Địa chư tham chiêu dùng moơt thanh ghi cơ bạn (hoaịc thanh ghi đêm chương trình PC hoaịc thanh ghi con trỏ dữ lieơu DPTR) và địa chư offset chương trình PC hoaịc thanh ghi con trỏ dữ lieơu DPTR) và địa chư offset (trong thanh ghi tích lũy A) đeơ táo địa chư được tác đoơng cho các leơnh JMP hoaịc MOVC.

Các bạng nhạy và bạng tìm kiêm deê dàng được táo ra đeơ sử dúng địa chư 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ã leơnh Offset tương đôi

Địa chư tuyeơt đôi

Mã leơnh A15 - A8 A7 – A0

Taơp leơnh cụa 8952 được chia làm 5 nhóm:

 Sô hĩc

 Luaơn lí

 Chuyeơn dữ lieơu

 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ữ lieơu beđn trong. Nó có theơ là vùng RAM dữ lieơu trong (0-127) hoaịc các thanh ghi chức naíng đaịc bieơt.

@Ri : 8 bit vùng RAM dữ lieơu 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 leơnh LCALL và LJMP. addr11 : 11 bit địa chư đích được dùng trong leơnh ACALL và AJMP.

rel :Byte offset 8 bit có dâu được dùng trong leơnh SJUMP và những leơnh (adsbygoogle = window.adsbygoogle || []).push({});

nhạy có đieău kieơn.

bit : Bit được định địa chư trực tiêp trong RAM dữ lieơu noơi hoaịc các thanh ghi chức naíng đaịc bieơt.

a/ Nhóm leơnh xử lí sô hĩc:

ADD A, Rn (1 byte, 1 chu kì máy) : Coơng noơi dung thanh ghi Rn vào thanh ghi A.

ADD A, data (2, 1) : Coơng trực tiêp 1 byte vào thanh ghi A.

AAD A, @Ri (1, 1) : Coơng gián tiêp noơi dung RAM chứa tái địa chư được khai báo trong Ri vào thanh ghi A.

ADD A, #data (2, 1) : Coơng dữ lieơu tức thời vào A.

ADDC A, Rn (1, 1) : Coơng thanh ghi và cờ nhớ vào A.

ADDC A, data(2, 1) : Coơng trực tiêp byte dữ lieơu và cờ nhớ vào A.

ADDC A, @Ri(1, 1) : Coơng gián tiêp noơi dung RAM và cờ nhớ vào A.

ADDC A, #data (2, 1) : Coơng dữ lieơu tức thời và cờ nhớ vào A.

SUBB A, Rn (1, 1) : Trừ noơi dung thanh ghi A cho noơi dung thanh ghi Rn và cờ nhớ.

SUBB A, data(2, 1) : Trừ trực tiêp A cho moơt sô và cờ nhớ.

SUBB A, @Ri (1, 1) : Trừ gián tiêp A cho moơt sô và cờ nhớ.

SUBB A, #data (2, 1) : Trừ noơi dung A cho moơt sô tức thời và cờ nhớ.

INC A (1, 1) : Taíng noơi dung thanh ghi A leđn 1.

INC data (2, 1) : Taíng dữ lieơu trực tiêp leđn 1.

INC @Ri (1, 1) : Taíng gián tiêp noơi 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ữ lieơu trực tiêp xuông 1.

DEC @Ri (1, 1) : Giạm gián tiêp noơi dung vùng RAM xuông 1.

INC DPTR (1, 2) : Taíng noơi dung con trỏ dữ lieơu leđn 1.

MUL AB (1, 4) : Nhađn noơi dung thanh ghi A với noơi dung thanh ghi B.

Một phần của tài liệu Cacs phương phá điều chỉnh động cơ một chiều kích từ độc lập (Trang 67)