II. CÁC KIỂU LỆNH (INSTRUCTION TYPES) CỦA 8951: 8951 chia ra 5nhĩm lệnh chính :
4. Các lệnh dịch chuyển dữ liệu:
Các lệnh dịch chuyển dữ liệu trong những vùng nhớ nội thực thi 1 hoặc 2 chu kỳ máy. Mẫu lện` MOV <destination>, <source> cho phép di chuyển dữ liệu bất kỳ 2 vùng nhớ nào của RAM nội hoặc các vùng nhớ của các thanh ghi chức năng đặc biệt mà khơng thơng qua thanh ghi A.
Vùng Ngăn xếp của 8951 chỉ chứa 128 byte RAM nội, nếu con trỏ Ngăn xếp SP được tăng quá địa chỉ 7FH thì các byte được PUSH vào sẽ mất đi và các byte POP ra thì khơng biết rõ.
Các lệnh dịch chuyển bộ nhớ nội và bộ nhớ ngoại dùng sự định vị gián tiếp. Địa chỉ gián tiếp cĩ thể dùng địa chỉ 1 byte (@ Ri) hoặc địa chỉ 2 byte (@ DPTR). Tất cả các lệnh dịch chuyển hoạt động trên tồn bộ nhớ ngồi thực thi trong 2 chu kỳ máy và dùng thanh ghi A làm tốn hạng DESTINATION.
Việc đọc và ghi RAM ngồi (RD và WR) chỉ tích cực trong suốt q trình thực thi của lệnh MOVX, cịn bình thường RD và WR khơng tích cực (mức 1).
Tất cả các lệnh dịch chuyển đểu khơng ảnh hưởng đến cờ. Hoạt động của từng lệnh được tĩm tắt như sau :
MOV A,Rn : (A) ← (Rn)
MOV A, direct : (A) ← (direct) MOV A, @ Ri : (A) ← ((Ri)) MOV A, # data : (A) ← # data
MOV Rn, A : (Rn) ← (A) MOV Rn, direct : (Rn) ← (direct) MOV Rn, # data : (Rn) ← # data MOV direct, A : (direct) ← (A) MOV direct, Rn 2 (direct) ← (Rn) MOV direct, direct : (direct) ← (direct) MOV direct, @ Ri : (direct) ← ((Ri)) MOV direct, # data : (direct) ← data MOV @ Ri, A : ((Ri)) ← (A) MOV @ Ri, direct : ((Ri)) ← (direct) MOV @ Ri, # data : ((Ri)) ← # data MOV DPTR, # data16 : (DPTR) ← # data16 MOV A, @ A + DPTR : (A) ← (A) + (DPTR) MOV @ A + PC : (PC) ← (PC) + 1
(A) ← (A) + (PC) MOVX A, @ Ri : (A) ← ((Ri)) MOVX A, @ DPTR : (A) ← ((DPTR)) MOVX @ Ri, A : ((Ri)) ← (A) MOVX @ DPTR, A : ((DPTR)) ← (A)
PUSH direct : Cất dữ liệu vào Ngăn xếp (SP) ← (SP) + 1
(SP) ← (Drirect)
POP direct : Lấy từ Ngăn xếp ra direct (direct) ← ((SP))
(SP) ← (SP) - 1
XCH A, Rn : Đổi chổ nội dung của A với Rn (A) √ (Rn)
XCH A, direct : (A) √ (direct) XCH A, @ Ri : (A) √ ((Ri))
XCHD A, @ Ri : Đổi chổ 4 bit thấp của (A) với ((Ri)) (A3÷A0) √ ((Ri3÷Ri0))