Tải bản đầy đủ (.pdf) (73 trang)

Bài giảng lý thuyết vi xử lý - Chương 3: Lập trình hợp ngữ cho 8051 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (643.89 KB, 73 trang )

ÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINHÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH
KHOA CÔNG NGHỆ ðIỆN TỬKHOA CÔNG NGHỆ ðIỆN TỬ
BỘ MÔN ðIỆN TỬ CÔNG NGHIỆPBỘ MÔN ðIỆN TỬ CÔNG NGHIỆP
BÀI GIẢNG LÝ THUYẾTBÀI GIẢNG LÝ THUYẾT
VI XỬ LÝVI XỬ LÝ
TP. HỒ CHÍ MINHTP. HỒ CHÍ MINH
THÁNG 09THÁNG 09 20092009
VI XỬ LÝVI XỬ LÝ
GiáoGiáo viên: PHẠM QUANG TRÍviên: PHẠM QUANG TRÍ
ÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINHÐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH
KHOA CÔNG NGHỆ ðIỆN TỬKHOA CÔNG NGHỆ ðIỆN TỬ
BỘ MÔN ðIỆN TỬ CÔNG NGHIỆPBỘ MÔN ðIỆN TỬ CÔNG NGHIỆP
CHƯƠNG 3CHƯƠNG 3
LẬP TRÌNH HỢP NGỮLẬP TRÌNH HỢP NGỮ
CHO 8051CHO 8051
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ thanhthanh ghighi (Register(Register Addressing)Addressing)
 ðượcðược dùngdùng ñểñể truytruy xuấtxuất dữdữ liệuliệu trongtrong cáccác thanhthanh ghighi từtừ RR00 ñếnñến RR77
 SốSố bytebyte củacủa lệnhlệnh:: 11 bytebyte
 CấuCấu trúctrúc lệnhlệnh::
 VíVí dụdụ:: ADDADD A,A, RR55 ⇒⇒ LệnhLệnh cộngcộng nộinội dungdung thanhthanh ghighi AA vớivới nộinội dungdung thanhthanh
ghighi
RR
55

(Giả(Giả
sửsử
::
(A)=(A)=
0505


H,H,
(R(R
55
)=)=
99
AH)AH)

ghighi
RR
55

(Giả(Giả
sửsử
::
(A)=(A)=
0505
H,H,
(R(R
55
)=)=
99
AH)AH)

⇒⇒ MãMã lệnhlệnh::
⇒⇒ MôMô tảtả lệnhlệnh::
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ trựctrực tiếptiếp (Direct(Direct Addressing)Addressing)
 ðượcðược dùngdùng ñểñể truytruy xuấtxuất dữdữ liệuliệu trongtrong cáccác ôô nhớnhớ RAMRAM nộinội ((0000HH 77FHFH)) vàvà
trongtrong cáccác SFRSFR ((A,A, B,B, PP00,, PP11,, PP22,, PP33,, DPH,DPH, DPL,DPL, ……)) hayhay ((8080HH FFHFFH))
 SốSố bytebyte củacủa lệnhlệnh:: 22 bytebyte

 CấuCấu trúctrúc lệnhlệnh::
 VíVí dụdụ:: ADDADD A,A, PP11 hoặchoặc ADDADD A,A, 9090HH ⇒⇒ LệnhLệnh cộngcộng nộinội dungdung thanhthanh ghighi AA
vớivới
nộinội
dungdung
PortPort
11
hayhay
ôô
nhớnhớ
9090
HH

(Giả(Giả
sửsử
::
(A)(A)
==
0505
H,H,
(P(P
11
))
==
((
9090
H)H)
==
vớivới
nộinội

dungdung
PortPort
11
hayhay
ôô
nhớnhớ
9090
HH

(Giả(Giả
sửsử
::
(A)(A)
==
0505
H,H,
(P(P
11
))
==
((
9090
H)H)
==
99AH)AH)
⇒⇒ MãMã lệnhlệnh::
⇒⇒ MôMô tảtả lệnhlệnh::
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ giángián tiếptiếp (Indirect(Indirect Addressing)Addressing)
 ðượcðược dùngdùng ñểñể truytruy xuấtxuất dữdữ liệuliệu trongtrong cáccác ôô nhớnhớ RAMRAM nộinội cócó ñịañịa chỉchỉ thaythay

ñổiñổi liênliên tụctục khikhi chươngchương trìnhtrình ñangñang chạychạy RR00 vàvà RR11 hoạthoạt ñộngñộng nhưnhư cáccác
concon trỏtrỏ vàvà nộinội dungdung củacủa chúngchúng chỉchỉ rara ñịañịa chỉchỉ ôô nhớnhớ RAMRAM cầncần truytruy xuấtxuất
 SốSố bytebyte củacủa lệnhlệnh:: 11 bytebyte
 CấuCấu trúctrúc lệnhlệnh::
VíVí
dụdụ
::
ADDADD
A,A,
@@
RR
00
⇒⇒
LệnhLệnh
cộngcộng
nộinội
dungdung
thanhthanh
ghighi
AA
vớivới
nộinội
dungdung
ôô

VíVí
dụdụ
::
ADDADD
A,A,

@@
RR
00
⇒⇒
LệnhLệnh
cộngcộng
nộinội
dungdung
thanhthanh
ghighi
AA
vớivới
nộinội
dungdung
ôô
nhớnhớ cócó ñịañịa chỉchỉ chứachứa trongtrong thanhthanh ghighi RR00 ((GiảGiả sửsử:: (A)(A) == 0505H,H, (R(R00)) == 33BH,BH,
((33BH)BH) == 99AHAH))
⇒⇒ MãMã lệnhlệnh::
⇒⇒ MôMô tảtả lệnhlệnh::
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ tứctức thờithời (Immediate(Immediate Addressing)Addressing)
 ðượcðược dùngdùng ñểñể truytruy xuấtxuất mộtmột hằnghằng sốsố ((giágiá trtr bitbit trctrc)) thaythay vìvì làlà mộtmột
biếnbiến ((giágiá trtr khôngkhông bitbit trctrc)) nhưnhư cáccác kiểukiểu ñịnhñịnh ñịañịa chỉchỉ trêntrên CóCó thểthể
dùngdùng ñểñể nạpnạp dữdữ liệuliệu vàovào mọimọi ôô nhớnhớ vàvà thanhthanh ghighi bấtbất kỳkỳ ((ñốiñối vớivới thanhthanh ghighi
88 bitbit:: ##0000HH ##00FFHFFH,, ñốiñối vớivới thanhthanh ghighi 1616 bitbit:: ##00000000HH ##00FFFFHFFFFH))
 SốSố bytebyte củacủa lệnhlệnh:: 22 bytebyte
 CấuCấu trúctrúc lệnhlệnh::
 VíVí dụdụ:: ADDADD A,A, ##99AHAH ⇒⇒ LệnhLệnh cộngcộng nộinội dungdung thanhthanh ghighi AA vớivới giágiá trịtrị 99AHAH
((GiảGiả sửsử:: (A)(A) == 0505HH))
⇒⇒ MãMã lệnhlệnh::

⇒⇒ MôMô tảtả lệnhlệnh::
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ tươngtương ñốiñối (Relative(Relative Addressing)Addressing)
 ðược sử dụng cho các lệnh nhảy (rẽ nhánh).ðược sử dụng cho các lệnh nhảy (rẽ nhánh).
 ðịa chỉ tương ñối (ðịa chỉ tương ñối (hay offsethay offset) là một giá trị ) là một giá trị 8 bit có dấu8 bit có dấu
 Tầm nhảy giới hạn là: Tầm nhảy giới hạn là: 128 byte … 127 byte 128 byte … 127 byte từ vị trí của lệnh tiếp theo từ vị trí của lệnh tiếp theo
sau lệnh nhảy.sau lệnh nhảy.
 Số byte của lệnh: Số byte của lệnh: 2 byte2 byte
 Cấu trúc lệnh: Cấu trúc lệnh:
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ tươngtương ñốiñối (Relative(Relative Addressing)Addressing)
 Ví dụ 1:Ví dụ 1: SJMP SJMP AAAAAA ⇒⇒ Lệnh nhảy ñến nhãn AAA (Lệnh nhảy ñến nhãn AAA (Giả sử: nhãn AAA ñặt Giả sử: nhãn AAA ñặt
trước lệnh ở ñịa chỉ 0107H, lệnh SJMP nằm trong bộ nhớ tại ñịa chỉ trước lệnh ở ñịa chỉ 0107H, lệnh SJMP nằm trong bộ nhớ tại ñịa chỉ
0100H và 0101H0100H và 0101H).).
⇒⇒ MãMã lệnhlệnh::
⇒⇒
MôMô
tảtả
lệnhlệnh
::
⇒⇒
MôMô
tảtả
lệnhlệnh
::
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ tươngtương ñốiñối (Relative(Relative Addressing)Addressing)
 Ví dụ 2:Ví dụ 2: SJMP SJMP AAAAAA ⇒⇒ Lệnh nhảy ñến nhãn AAA (Lệnh nhảy ñến nhãn AAA (Giả sử: nhãn AAA ñặt Giả sử: nhãn AAA ñặt
trước lệnh ở ñịa chỉ 203BH, lệnh SJMP nằm trong bộ nhớ tại ñịa chỉ trước lệnh ở ñịa chỉ 203BH, lệnh SJMP nằm trong bộ nhớ tại ñịa chỉ
2040H và 2041H2040H và 2041H).).

⇒⇒ MãMã lệnhlệnh::
⇒⇒
MôMô
tảtả
lệnhlệnh
::
⇒⇒
MôMô
tảtả
lệnhlệnh
::
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ tuyệttuyệt ñốiñối (Absolute(Absolute Addressing)Addressing)
 ðược sử dụng cho các lệnh nhảy (rẽ nhánh): ðược sử dụng cho các lệnh nhảy (rẽ nhánh): ACALLACALL và và AJMPAJMP
 ðịa chỉ tuyệt ñối là một giá trị ðịa chỉ tuyệt ñối là một giá trị 11 bit11 bit
 Tầm nhảy giới hạn là: Tầm nhảy giới hạn là: trong cùng trang 2KB hiện hànhtrong cùng trang 2KB hiện hành
 Số byte của lệnh: Số byte của lệnh: 2 byte2 byte
 Cấu trúc lệnh: Cấu trúc lệnh:
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ tuyệttuyệt ñốiñối (Absolute(Absolute Addressing)Addressing)
 Ví dụ:Ví dụ: AJMP AJMP AAAAAA ⇒⇒ Lệnh nhảy ñến nhãn AAA (Lệnh nhảy ñến nhãn AAA (Giả sử: nhãn AAA ñặt Giả sử: nhãn AAA ñặt
trước lệnh ở ñịa chỉ 0F46H, lệnh AJMP nằm trong bộ nhớ tại ñịa chỉ trước lệnh ở ñịa chỉ 0F46H, lệnh AJMP nằm trong bộ nhớ tại ñịa chỉ
0900H và 0901H0900H và 0901H).).
⇒⇒ MãMã lệnhlệnh::
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ tuyệttuyệt ñốiñối (Absolute(Absolute Addressing)Addressing)
⇒⇒ MôMô tảtả lệnhlệnh::
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ dàidài (Long(Long Addressing)Addressing)
 ðược sử dụng cho các lệnh nhảy (rẽ nhánh): ðược sử dụng cho các lệnh nhảy (rẽ nhánh): LCALLLCALL và và LJMPLJMP

 ðịa chỉ dài là một giá trị ðịa chỉ dài là một giá trị 16 bit16 bit
 Tầm nhảy giới hạn là: Tầm nhảy giới hạn là: toàn bộ không gian nhớ 64KBtoàn bộ không gian nhớ 64KB
 Số byte của lệnh: Số byte của lệnh: 3 byte3 byte
 Cấu trúc lệnh: Cấu trúc lệnh:
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ dàidài (Long(Long Addressing)Addressing)
 Ví dụ:Ví dụ: LJMP LJMP AAAAAA ⇒⇒ Lệnh nhảy ñến nhãn AAA (Lệnh nhảy ñến nhãn AAA (Giả sử: nhãn AAA ñặt Giả sử: nhãn AAA ñặt
trước lệnh ở ñịa chỉ A209H, lệnh LJMP nằm trong bộ nhớ tại ñịa chỉ trước lệnh ở ñịa chỉ A209H, lệnh LJMP nằm trong bộ nhớ tại ñịa chỉ
0100H, 0101H và 0102H0100H, 0101H và 0102H).).
⇒⇒ MãMã lệnhlệnh::
⇒⇒ MôMô tảtả lệnhlệnh::
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ chỉchỉ sốsố (Indexed(Indexed Addressing)Addressing)
 ðượcðược dùngdùng trongtrong cáccác ứngứng dụngdụng cầncần tạotạo bảngbảng nhảynhảy hayhay bảngbảng tìmtìm kiếmkiếm
KiểuKiểu ñịnhñịnh ñịañịa chỉchỉ nàynày dùngdùng mộtmột thanhthanh ghighi nềnnền ((PCPC hayhay DPTRDPTR)) kếtkết hợphợp
vớivới mộtmột offsetoffset ((AA)) ñểñể tạotạo thànhthành dạngdạng ñịañịa chỉchỉ chocho lệnhlệnh:: JMPJMP vàvà MOVCMOVC
 SốSố bytebyte củacủa lệnhlệnh:: 11 bytebyte
 CấuCấu trúctrúc lệnhlệnh::
 VíVí dụdụ:: JMPJMP @A+DPTR@A+DPTR ⇒⇒ LệnhLệnh nhảynhảy giángián tiếptiếp ((GiảGiả sửsử:: (A)(A) == 2525HH vàvà
(DPTR)(DPTR) == 12341234HH))
(A) + (DPTR) = 25H + 1234H = (A) + (DPTR) = 25H + 1234H = 1259H1259H
⇒⇒ Vậy chương trình sẽ nhảy ñến thực thi lệnh tại ñịa chỉ 1259HVậy chương trình sẽ nhảy ñến thực thi lệnh tại ñịa chỉ 1259H
CÁC KIỂU ðỊNH ðỊA CHỈCÁC KIỂU ðỊNH ðỊA CHỈ
 ðịnhðịnh ñịañịa chỉchỉ thanhthanh ghighi (Register(Register Addressing)Addressing)
 ðịnhðịnh ñịañịa chỉchỉ trựctrực tiếptiếp (Direct(Direct Addressing)Addressing)
 ðịnhðịnh ñịañịa chỉchỉ giángián tiếptiếp (Indirect(Indirect Addressing)Addressing)
 ðịnhðịnh ñịañịa chỉchỉ tứctức thờithời (Immediate(Immediate Addressing)Addressing)
 ðịnhðịnh ñịañịa chỉchỉ tươngtương ñốiñối (Relative(Relative Addressing)Addressing)

ðịnhðịnh

ñịañịa
chỉchỉ
tuyệttuyệt
ñốiñối
(Absolute(Absolute
Addressing)Addressing)
ðịnhðịnh
ñịañịa
chỉchỉ
tuyệttuyệt
ñốiñối
(Absolute(Absolute
Addressing)Addressing)
 ðịnhðịnh ñịañịa chỉchỉ dàidài (Long(Long Addressing)Addressing)
 ðịnhðịnh ñịañịa chỉchỉ chỉchỉ sốsố (Indexed(Indexed Addressing)Addressing)
TẬP LỆNH CỦA 8051TẬP LỆNH CỦA 8051
 GiớiGiới thiệuthiệu tậptập lệnhlệnh củacủa 80518051::
 TốiTối ưuưu hóahóa chocho cáccác ứngứng dụngdụng ñiềuñiều khiểnkhiển 88 bitbit
 CóCó nhiềunhiều kiểukiểu ñịnhñịnh ñịañịa chỉchỉ ñểñể truytruy xuấtxuất dữdữ liệuliệu
 HỗHỗ trợtrợ cáccác ứngứng dụngdụng ñiềuñiều khiểnkhiển 11 bitbit
 TậpTập lệnhlệnh gồmgồm 255255 lệnhlệnh::
•• 139139 lệnhlệnh cócó ñộñộ dàidài 11 bytebyte
•• 9292 lệnhlệnh cócó ñộñộ dàidài 22 bytebyte
•• 2424 lệnhlệnh cócó ñộñộ dàidài 33 bytebyte
 TậpTập lệnhlệnh ñượcñược chiachia làmlàm 55 nhómnhóm::
•• NhómNhóm lệnhlệnh sốsố họchọc ((ArithmeticArithmetic Operations)Operations)
•• NhómNhóm lệnhlệnh logiclogic ((LogicalLogical Operations)Operations)
•• NhómNhóm lệnhlệnh didi chuyểnchuyển dữdữ liệuliệu ((DataData Transfer)Transfer)
•• NhómNhóm lệnhlệnh xửxử lýlý bitbit ((BooleanBoolean VariableVariable Manipulation)Manipulation)
•• NhómNhóm lệnhlệnh rẽrẽ nhánhnhánh ((ProgramProgram Branching)Branching)

TẬP LỆNH CỦA 8051TẬP LỆNH CỦA 8051
 MộtMột sốsố kýký hiệuhiệu dùngdùng trongtrong lệnhlệnh ::
 RnRn ðịa chỉ thanh ghi sử dụng (ðịa chỉ thanh ghi sử dụng (R0 R0 –– R7R7).).
 directdirect ðịa chỉ trực tiếp của một byte trong RAM nội.ðịa chỉ trực tiếp của một byte trong RAM nội.
 @Ri@Ri ðịa chỉ gián tiếp sử dụng (ðịa chỉ gián tiếp sử dụng (R0 hoặc R1R0 hoặc R1).).
 sourcesource Toán hạng nguồn (Toán hạng nguồn (Rn, direct hoặc @RiRn, direct hoặc @Ri).).
 destdest Toán hạng ñích (Toán hạng ñích (Rn, direct hoặc @RiRn, direct hoặc @Ri).).
 #data#data Hằng số 8 bit .Hằng số 8 bit .
 #data16#data16 Hằng số 16 bit.Hằng số 16 bit.

bitbit
ðịa chỉ trực tiếp của một bit (ðịa chỉ trực tiếp của một bit (
ñịa chỉ bitñịa chỉ bit
).).

bitbit
ðịa chỉ trực tiếp của một bit (ðịa chỉ trực tiếp của một bit (
ñịa chỉ bitñịa chỉ bit
).).
 relrel Offset 8 bit có dấu.Offset 8 bit có dấu.
 addr11addr11 ðịa chỉ 11 bit.ðịa chỉ 11 bit.
 addr16addr16 ðịa chỉ 16 bit.ðịa chỉ 16 bit.
 ←
←←
←←
←←
← …… ðược thay thế bởi …ðược thay thế bởi …
 (…)(…) Nội dung của …Nội dung của …
 ((…))((…)) Nội dung ñược chứa bởi …Nội dung ñược chứa bởi …
 rrrrrr Thanh ghi của dãy thanh ghi (Thanh ghi của dãy thanh ghi (R0 R0 R7R7).).

 ii ðịa chỉ gián tiếp sử dụng (R0 hoặc R1).ðịa chỉ gián tiếp sử dụng (R0 hoặc R1).
 dddddddddddddddd Các bit dữ liệu.Các bit dữ liệu.
 aaaaaaaaaaaaaaaa Các bit ñịa chỉ.Các bit ñịa chỉ.
 eeeeeeeeeeeeeeee ðịa chỉ tương ñối.ðịa chỉ tương ñối.
TẬP LỆNH CỦA 8051TẬP LỆNH CỦA 8051
NHÓM LỆNH SỐ HỌCNHÓM LỆNH SỐ HỌC
 11 LệnhLệnh cộngcộng (Add)(Add)::
ADD A, <srcADD A, <src byte>byte>
 MôMô tảtả:: ADDADD cộngcộng nộinội dungdung củacủa thanhthanh ghighi AA ((AA)) vớivới nộinội dungdung củacủa mộtmột
bytebyte cócó ñịañịa chỉchỉ ñượcñược chỉchỉ rara trongtrong lệnhlệnh ((srcsrc bytebyte)) vàvà ñặtñặt kếtkết quảquả vàovào
thanhthanh ghighi AA CácCác cờcờ bịbị ảnhảnh hưởnghưởng
 CácCác dạngdạng lệnhlệnh::
 ADDADD A,A, RnRn

←←
←←
←←

(A) (A)

←←
←←
←←

(A) + (Rn)(A) + (Rn)
 ADDADD A,A, directdirect
(A) (A) ←
←←
←←
←←

← (A) + (direct)(A) + (direct)
 ADDADD A,A, @Ri@Ri
(A) (A) ←
←←
←←
←←
← (A) + ((Ri))(A) + ((Ri))
 ADDADD A,A, #data#data
(A) (A) ←
←←
←←
←←
← (A) + #data(A) + #data
TẬP LỆNH CỦA 8051TẬP LỆNH CỦA 8051
NHÓM LỆNH SỐ HỌCNHÓM LỆNH SỐ HỌC
 22 LệnhLệnh cộngcộng cócó nhớnhớ (Add(Add withwith Carry)Carry)::
ADDC A, <srcADDC A, <src byte>byte>
 MôMô tảtả:: ADDCADDC cộngcộng ñồngñồng thờithời nộinội dungdung củacủa thanhthanh ghighi AA ((AA)) vớivới nộinội dungdung
củacủa bytebyte cócó ñịañịa chỉchỉ ñượcñược chỉchỉ rara trongtrong lệnhlệnh ((srcsrc bytebyte)) vàvà cờcờ nhớnhớ ((CYCY),), ñặtñặt
kếtkết quảquả vàovào thanhthanh ghighi AA CácCác cờcờ bịbị ảnhảnh hưởnghưởng
 CácCác dạngdạng lệnhlệnh::
 ADDCADDC A,A, RnRn

←←
←←
←←

(A) (A)

←←

←←
←←

(A) + (C) + (Rn)(A) + (C) + (Rn)
 ADDCADDC A,A, directdirect
(A) (A) ←
←←
←←
←←
← (A) + (C) + (direct)(A) + (C) + (direct)
 ADDCADDC A,A, @Ri@Ri
(A) (A) ←
←←
←←
←←
← (A) + (C) + ((Ri))(A) + (C) + ((Ri))
 ADDCADDC A,A, #data#data
(A) (A) ←
←←
←←
←←
← (A) + (C) + #data(A) + (C) + #data
TẬP LỆNH CỦA 8051TẬP LỆNH CỦA 8051
NHÓM LỆNH SỐ HỌCNHÓM LỆNH SỐ HỌC
 33 LệnhLệnh trừtrừ cócó sốsố mượnmượn (Subtract(Subtract withwith Borrow)Borrow)::
SUBB A, <srcSUBB A, <src byte>byte>
 MôMô tảtả:: SUBBSUBB trừtrừ nộinội dungdung củacủa thanhthanh ghighi AA ((AA)) vớivới nộinội dungdung củacủa bytebyte cócó
ñịañịa chỉchỉ ñượcñược chỉchỉ rara trongtrong lệnhlệnh ((srcsrc bytebyte)) cùngcùng vớivới cờcờ nhớnhớ vàvà cấtcất kếtkết quảquả
vàovào thanhthanh ghighi AA CácCác cờcờ bịbị ảnhảnh hưởnghưởng
 CácCác dạngdạng lệnhlệnh::

 SUBBSUBB A,A, RnRn

←←
←←
←←

(A) (A)

←←
←←
←←

(A) (A) (C) (C) (Rn)(Rn)
 SUBBSUBB A,A, directdirect
(A) (A) ←
←←
←←
←←
← (A) (A) (C) (C) (direct)(direct)
 SUBBSUBB A,A, @Ri@Ri
(A) (A) ←
←←
←←
←←
← (A) (A) (C) (C) ((Ri))((Ri))
 SUBBSUBB A,A, #data#data
(A) (A) ←
←←
←←
←←

← (A) (A) (C) (C) #data#data
TẬP LỆNH CỦA 8051TẬP LỆNH CỦA 8051
NHÓM LỆNH SỐ HỌCNHÓM LỆNH SỐ HỌC
 44 LệnhLệnh tăngtăng thêmthêm 11 (Increment)(Increment)::
INC byteINC byte
 MôMô tảtả:: TăngTăng nộinội dungdung củacủa bytebyte cócó ñịañịa chỉchỉ ñượcñược chỉchỉ rara trongtrong lệnhlệnh ((bytebyte))
thêmthêm 11 CácCác cờcờ khôngkhông bịbị ảnhảnh hưởnghưởng
 CácCác dạngdạng lệnhlệnh::
 INCINC AA
(A) (A) ←
←←
←←
←←
← (A) + 1(A) + 1
 INCINC RnRn
(Rn) (Rn) ←
←←
←←
←←
← (Rn) + 1 (Rn) + 1
 INCINC directdirect
(direct) (direct) ←
←←
←←
←←
← (direct) + 1 (direct) + 1
 INCINC @Ri@Ri
((Ri)) ((Ri)) ←
←←
←←

←←
← ((Ri)) + 1((Ri)) + 1
TẬP LỆNH CỦA 8051TẬP LỆNH CỦA 8051
NHÓM LỆNH SỐ HỌCNHÓM LỆNH SỐ HỌC
 55 LệnhLệnh tăngtăng concon trỏtrỏ dữdữ liệuliệu (Increment(Increment DataData Pointer)Pointer)::
INC DPTRINC DPTR
 MôMô tảtả:: TăngTăng nộinội dungdung củacủa thanhthanh ghighi concon trỏtrỏ dữdữ liệuliệu 1616 bitbit ((DPTRDPTR)) thêmthêm
11 CácCác cờcờ khôngkhông bịbị ảnhảnh hưởnghưởng
 CácCác dạngdạng lệnhlệnh::
 INCINC DPTRDPTR
(DPTR) (DPTR) ←
←←
←←
←←
← (DPTR) + 1(DPTR) + 1
 LưuLưu ýý:: KhôngKhông cócó lệnhlệnh giãmgiãm nộinội dungdung củacủa DPTRDPTR ((DECDEC DPTRDPTR)) NếuNếu muốnmuốn
giãmgiãm nộinội dungdung củacủa DPTRDPTR tata phảiphải viếtviết mộtmột ñoạnñoạn chươngchương trìnhtrình concon ñểñể thựcthực
hiệnhiện ñiềuñiều nàynày
TẬP LỆNH CỦA 8051TẬP LỆNH CỦA 8051
NHÓM LỆNH SỐ HỌCNHÓM LỆNH SỐ HỌC
 66 LệnhLệnh giãmgiãm bớtbớt 11 (Decrement)(Decrement)::
DEC byteDEC byte
 MôMô tảtả:: GiãmGiãm nộinội dungdung củacủa bytebyte cócó ñịañịa chỉchỉ ñượcñược chỉchỉ rara trongtrong lệnhlệnh ((bytebyte))
bớtbớt 11 CácCác cờcờ khôngkhông bịbị ảnhảnh hưởnghưởng
 CácCác dạngdạng lệnhlệnh::
 DECDEC AA
(A) (A) ←
←←
←←
←←

← (A) (A) 11
 DECDEC RnRn
(Rn) (Rn) ←
←←
←←
←←
← (Rn) (Rn) 1 1
 DECDEC directdirect
(direct) (direct) ←
←←
←←
←←
← (direct) (direct) 1 1
 DECDEC @Ri@Ri
((Ri)) ((Ri)) ←
←←
←←
←←
← ((Ri)) ((Ri)) 11

×