
Ch ng 5ươ
Các ch đ đánh đ a ch c a 8051ế ộ ị ỉ ủ
CPC có th truy c p d li u theo nhi u cách khác nhau. D li u có th ể ậ ữ ệ ề ữ ệ ể ở
trong m t thanh ghi ho c trong b nh ho c đ c cho nh m t giá tr t c th i cácộ ặ ộ ớ ặ ượ ư ộ ị ứ ờ
cách truy c p d li u khác nhau đ c g i là các ch đ đánh đ a ch . Ch ng nàyậ ữ ệ ượ ọ ế ộ ị ỉ ươ
chúng ta bàn lu n v các ch đ đánh đ a ch c a 8051 trong ph m vi m t s ví d .ậ ề ế ộ ị ỉ ủ ạ ộ ố ụ
Các ch đ đánh đ a ch khác nhau c a b vi x lý đ c xác đ nh nh nóế ộ ị ỉ ủ ộ ử ượ ị ư
đ c thi t k và do v y ng i l p trình không th đánh đ a ch khác nhau là:ượ ế ế ậ ườ ậ ể ị ỉ
1. t c th i 2. Theo thanh ghi 3. Tr c ti pứ ờ ự ế
4. gián ti p qua thanh ghi 5. Theo ch sế ỉ ố
5.1 Các ch đ đánh đ a ch t c th i và theo thanh ghiế ộ ị ỉ ứ ờ
5.1.1 Ch đ đánh đ a ch t c th i ế ộ ị ỉ ứ ờ
Trong ch đ đánh đ a ch này toán h ng ngu n là m t h ng s . Và nh tênế ộ ị ỉ ạ ồ ộ ằ ố ư
g i c a nó thì khi m t l nh đ c h p d ch toán h ng đi t c thi ngay sau mã l nh.ọ ủ ộ ệ ượ ợ ị ạ ứ ệ
L u ý r ng tr c d li u t c th i ph i đ c đ t d u (#) ch đ đánh đ a ch nàyư ằ ướ ữ ệ ứ ờ ả ượ ặ ấ ế ộ ị ỉ
có th đ c dùng đ n p thông tin vào b t kỳ thanh ghi nào k c thanh ghi con trể ượ ể ạ ấ ể ả ỏ
d li u DPTR. Ví d :ữ ệ ụ
MOV A, # 25H ; N p giá tr 25H vào thanh ghi Aạ ị
MOV R4, #62 ; N p giá tr 62 th p phân vào R4ạ ị ậ
MOV B, #40H ; N p giá tr 40 H vào thanh ghi Bạ ị
MOV DPTR, #4521H ; N p 4512H vào con tr d li u DPTRạ ỏ ữ ệ
M c dù thanh ghi DPTR là 16 bit nó cũng có th đ c truy c p nh 2 thanhặ ể ượ ậ ư
ghi 8 bit DPH và DPL trong đó DPH là byte cao và DPL là byte th p. Xét đo n mãấ ạ
d i đây:ướ
MOV DPTR, #2550H
MOV A, #50H
MOV DPH, #25H
Cũng l u ý r ng l nh d i đây có th t o ra l i vì giá tr n p vào DPTR l nư ằ ệ ướ ể ạ ỗ ị ạ ớ
h n16 bit:ơ
MOV DPTR, # 68975 ; Giá tri không h p l > 65535 (FFFFH)ợ ệ
Ta có th dùng ch l nh Eqw đ truy c p d li u t c th i nh sauể ỉ ệ ể ậ ữ ệ ứ ờ ư
COUNT EDU 30
... ...
MOV R4, #COUNT ; R4 = 1E (30 = 1EH)
MOV DPTR, #MYDATA ; DPTR = 200H
ORG 200H
MYDATA: DB “America”