Created by ELECTRONIC FACULTY Page 37
• Note: Trong phám vi bài hướng dăn này tođi chư trình bày sơ lượt cách dùng các leơnh đeơ chúng ta có theơ áp dúng vào laơp trình chứ khođng đi sađu vào nghieđn cứu câu trúc leơnh. Đeơ có theơ hieơu rõ hơn bán neđn tìm đĩc cuôn “Hĩ Vi Đieău Khieơn 8051”
Nhóm leơnh gĩi chương trình con: Vieơc sử dúng chương trình con giúp chúng ta deê dàng laơp
trình hơn và bài laơp trình cũng ngaĩn gĩn deê hieơu. Các nhóm leơnh hay laịp lái trong bài ta neđn gom chúng vào moơt chương trình con.
ACALL Nhãn (Leơnh nhạy 2 byte, 2 chu kỳ máy) LCALL Nhãn (Leơnh nhạy 3 byte, 2 chu kỳ máy)
CALL Nhãn (Đađy là moơt leơnh hoê trợ, moơt sô trình bieđn dịch sẽ tự gán thành
nhãn Lcall nêu phám vi gĩi vượt quá 2KB)
- Là leơnh gĩi moơt chương trình con. Khi gaịp các leơnh này VĐK nhạy đên nhãn được gĩi và thực thi nhóm leơnh trong chương trình con cho đên khi gaịp leơnh RET thì sẽ kêt thúc vieơc thực thi chương trình con và quay veă chương trình chính. (nhạy veă thực hieơn leơnh sau leơnh gĩi)
Nhóm leơnh nhạy: goăm nhạy khođng đieău kieơn và nhạy có đieău kieơn (leơnh so sánh).
+ Nhạy khođng đieău kieơn:
LJMP Nhãn (Leơnh nhạy 3 byte, 2 chu kỳ máy)
SJMP Nhãn (Leơnh nhạy 2 byte, 2 chu kỳ máy)
AJMP Nhãn (Leơnh nhạy 2 byte, 2 chu kỳ máy)
JMP Nhãn (Đađy là moơt leơnh hoê trợ, moơt sô trình bieđn dịch sẽ tự gán thành nhãn
Ljmp nêu phám vi gĩi vượt quá 2KB)
- Chư caăn hieơu đơn giạn khi bán caăn CPU đi đên moơt nhãn nào đó thì dùng leơnh này, thực ra thì khi dùng leơnh đođi khi bán cũng khođng caăn quan tađm laĩm đên sô byte và sô chu kỳ máy cụa leơnh trừ khi chương trình cụa bán caăn đoơ chính xác cao ví dú như đeơ táo taăn sô dao đoơng chẳng hán hay tính toán thời gian cho đoăng hoă dùng VĐK (khođng dùng Real time)
+ Nhạy có đieău kieơn: (leơnh so sánh) lưu ý phám vi nhạy ±128 byte
JB bit? Nhãn (Leơnh nhạy 3 byte, 2 chu kỳ máy) - Là leơnh nhạy nêu bit bán đang xét baỉng 1, nêu = 0 thì sẽ làm leơnh kê
(bit?) là bit bán caăn xét ví dú như p0.1 (bit 1 cụa port0) hoaịc có theơ là bit cụa các thanh ghiù có
khạ naíng định địa chư bit như thanh ghi có địa chư từ 20h đên 30h.
JNB bit? Nhãn (Leơnh nhạy 3 byte, 2 chu kỳ máy) - Là leơnh nhạy nêu bit bán đang xét baỉng 1, nêu = 0 thì sẽ làm leơnh kê
JBC bit? Nhãn (Leơnh nhạy 3 byte, 2 chu kỳ máy)
- Xóa bit và nhạy đên nhãn nêu bit đang xét baỉng 1 ,nêu=0 thực hieơn leơnh kê
JC Nhãn (Leơnh nhạy 2 byte, 2 chu kỳ máy)
- Leơnh nhạy nêu cờ nhớ baỉng 1, nêu = 0 thì sẽ làm leơnh kê, cờ nhớ là C
JNC Nhãn (Leơnh nhạy 2 byte, 2 chu kỳ máy) - Leơnh nhạy nêu cờ nhớ baỉng 0, nêu = 1 thì sẽ làm leơnh kê
JZ Nhãn (Leơnh nhạy 2 byte, 2 chu kỳ máy)
- Leơnh nhạy nêu noơi dung thanh chứa A baỉng 1, nêu = 0 thì sẽ làm leơnh kê
JNZ Nhãn (Leơnh nhạy 2 byte, 2 chu kỳ máy)
- Leơnh nhạy nêu noơi dung thanh chứa A baỉng 0, nêu = 1 thì sẽ làm leơnh kê
CJNE <dest-byte>,<src-byte>, Nhãn (Leơnh nhạy 3 byte, 2 chu kỳ máy)
Với <dest-byte> là thanh ghi A hay thanh ghi Rn hoaịc @Ri( kieơu định địa chư gián tiêp)
- Leơnh này so sánh toán háng nguoăn và toán háng đích và sẽ nhạy đên nhãn nêu khođng baỉng nhau. (compare jumb not equal: so sánh và nhạy nêu khođng baỉng)
DJNZ <byte>, Nhãn (Leơnh nhạy 2 byte, 2 chu kỳ máy)
- Leơnh này sẽ giạm byte được chư ra moơt đơn vị và sẽ nhạy nêu byte đó khác 0 (decrement jump not zero: giạm và nhạy nêu khác 0)
Nhóm leơnh sô hĩc:
ADD A, source (1 byte, 1 chu kỳ máy) ;lưu ý chư dùng cho thanh ghi A Với source là #data, Rn, thanh ghi, @Ri
- Leơnh sẽ coơng toán háng nguoăn với A, kêt quạ chứa trong thanh ghi A
ADDC A, source (1 byte, 1 chu kỳ máy) ;lưu ý chư dùng cho thanh ghi A Với source là #data, Rn, thanh ghi, @Ri
- Leơnh sẽ coơng toán háng nguoăn với A và cờ nhớ, kêt quạ chứa trong thanh ghi A. Nêu có sô nhớ từ bit 7 hoaịc bit 3 cờ nhớ và cờ nhớ phú được set baỉng 1
SUBB A, source (1 byte, 1 chu kỳ máy) ;lưu ý chư dùng cho thanh ghi A
- Leơnh trừ A với noơi dung cụa toán háng nguoăn và cờ nhớ kêt quạ chứa trong thanh ghi A Set cờ nhớ baỉng 1 nêu có sô mượn được caăn đên cho bit 7 và xóa nêu ngược lái
INC source (1 byte, 1 chu kỳ máy với source là A, Rn, @Ri) - Leơnh này sẽ taíng toán háng nguoăn leđn moơt đơn vị
Với source là Rn, thanh ghi A , @Ri, con trỏ DPTR(1 byte, 2 chu kỳ máy), thanh ghi định địa chư (2 byte, 1 chu kỳ máy)
DEC sourse (1 byte, 1 chu kỳ máy với source là A, Rn, @Ri)
Với source là Rn, thanh ghi A , @Ri, thanh ghi định địa chư (2 byte, 1 chu kỳ máy)
DA A (1 byte, 1 chu kỳ máy) ;lưu ý chư dùng cho thanh ghi A - Leơnh hieơu chưnh thaơp phađn thanh ghi A
MUL AB (1 byte, 4 chu kỳ máy) ;lưu ý chư dùng cho thanh ghi A, B
- Nhađn thanh ghi A với thanh ghi B, kêt quạ byte thâp cụa tích sô chứa trong A còn byte cao cât trong B nêu tích sô lớn hơn 0ffh cờ tràn được set baỉng 1