1. Các cách định địa chỉ
1.1. Định địa chỉ thanh ghi
MCS 8051 có 8 thanh ghi làm việc được đánh số từ R0 đến R7, trong các lệnh áp dụng cách định địa chỉ này, thanh ghi được mã hóa bởi 3 bít trong byte mã lệnh như trình bày ở hình 3.1a. Trong cú pháp hợp ngữ của 8051 các thanh ghi được ký hiệu là Rn (n = 0..7) VD lệnh sau đây sẽ cộng nội dung bộ tích lũy với nội dung của thanh ghi R7
ADD A, R7
Mã lệnh tương ứng là 00101111B, 5 bít cao 00101 là mã lệnh cộng và 3 bít thấp 111 là mã của R7
Cấu tạo 8051 có 4 dãy thanh ghi nhưng tại mỗi thời điểm chỉ có một dãy duy nhất hoạt động, bốn dãy thanh ghi này là vùng nhớ 32 byte đầu tiên của RAM trong chiếm địa chỉ từ 00H đến 1FH, bít 4 và bít 3 trong thanh ghi PSW sẽ xác định dãy thanh ghi đang hoạt động, khi reset hệ thống thì dãy thanh ghi hoạt động mặc định là dãy 0, nhưng cũng có thể chọn dãy thanh ghi khác bằng cách thay đổi giá trị bít 4 và bít 3 của thanh ghi PSW.
VD: MOV PSW, #00011000B
Lúc này dãy thanh ghi hoạt động là dãy 3, bít 4 của PSW là bít RS1 và bít 3 của PSW là RS0. Có một số lệnh đặc biệt tác động đến một thanh ghi mặc định
như: Bộ tích lũy, con trỏ dữ liệu …Do đó, không cần đến các bít địa chỉ, trong trường hợp này bộ tích lũy được ký hiệu là A, con trỏ dữ liệu là DPTR, bộ đếm chương trình là PC, thanh ghi cờ là C, và cặp bộ tích lũy-thanh ghi B là AB.
VD: INC DPTR
Đây là lệnh có độ dài 1 byte, kết quả là con trỏ dữ liệu DPTR sẽ tăng lên 1 sau khi lệnh này được thực hiện