Nhúm lệnh rẽ nhỏnh chương trỡnh

Một phần của tài liệu Đồ án Tốt nghiệp thiết kế cánh tay robot phân loại sản phẩm (Trang 62)

Hinh 3.7: Chế độ 1 của Timer

3.4.4.Nhúm lệnh rẽ nhỏnh chương trỡnh

3.4.4.1. Lệnh gọi tuyệt đối

Cỳ phỏp cõu lệnh: ACALL addr11

Chức năng: gọi khụng điều kiện một chương trỡnh con đặt tại địa chỉ được chỉ ra trong cõu lệnh. Lệnh này làm tăng bộ đếm chương trỡnh thờm 2 đơn vị để PC chứa địa chỉ của lệnh kế lệnh ACALL, sau đú cất nội dung 16 bit của PC vào ngăn xếp (byte thấp cất trước) và tăng ngăn xếp con trỏ lờn 2 đơn vị. Địa chỉ đớch sẽ được hỡnh thành bằng cỏch ghộp 5 bit cao của thanh ghi PC, 3 bit cao của byte mó lệnh và byte thứ 2 của lệnh. Lệnh này khụng làm ảnh hưởng tới cỏc cờ.

3.4.4.2. Lệnh gọi dài

Cỳ phỏp cõu lệnh: LCALL addr16

Chức năng: gọi một chương trỡnh con đặt tại địa chỉ được chỉ ra trong cõu lệnh. Lệnh này tăng bộ đếm chương trỡnh them 3 đơn vị để PC chứa địa chỉ của lệnh kế lệnh LCALL, sau đú cất nội dung 16 bit của PC vào ngăn xếp (byte thấp cất trước) và tăng con trỏ ngăn xếp lờn 2 đơn vị. Tiếp theo nú sẽ chuyển byte thứ 2 và byte thứ 3 trong cõu lệnh LCALL vào byte cao và byte thấp của PC. Lệnh khụng làm ảnh hưởng tới cỏc cờ.

3.4.4.3. Lệnh quay trở lại từ chương trỡnh con

Cỳ phỏp cõu lệnh: RET

Chức năng: trở về từ chương trỡnh con. Lệnh này được thực hiện sau khi thực hiện xong lệnh ACALL hoặc LCALL. RET lấy lại byte cao và byte thấp của PC từ ngăn xếp, giảm SP đi 2 đơn vị. Chương trỡnh tiếp tục thực hiện với lệnh cú địa chỉ ở trong PC. Cỏc cờ khụng bị ảnh hưởng.

3.4.4.4. Lệnh quay trở lại từ ngắt

Chức năng: trở về từ chương trỡnh con. RETI lấy lại byte cao và byte thấp của PC từ ngăn xếp, phục hồi logic ngắt để cú thể nhận cỏc ngắt khỏc cú cựng mức ưu tiờn ngắt với ngắt được xử lý, sau đú giảm SP đi 2 đơn vị. Chương trỡnh tiếp tục được thực hiện với lệnh trước khi xử lý ngắt với địa chỉ ở trong PC. Cỏc cờ khụng bị ảnh hưởng.

3.4.4.5. Lệnh nhảy giỏn tiếp

Cỳ phỏp cõu lệnh: JMP @A + DPTR

Chức năng: cộng giỏ trị khụng dấu 8 bit của thanh ghi A với con trỏ dữ liệu 16 bit và nạp kết quả vào bộ đếm chương trỡnh, kết quả này chớnh là địa chỉ để nạp lệnh kế tiếp. Việc cộng 16 bit được thực hiện: số nhớ từ 8 bit thấp được truyền đến tất cả cỏc bit cao. Cả 2 thanh ghi A và DPTR đều khụng bị thay đổi. Lệnh này khụng ảnh hưởng tới trạng thỏi cỏc cờ.

3.4.4.6. Lệnh nhảy nếu 1 bit được thiết lập

Cỳ phỏp cõu lệnh: JB bit,rel

Chức năng: nếu bit đó cho cú giỏ trị bằng 1 thỡ nú nhảy tới địa chỉ đó xỏc định trong cõu lệnh, ngược lại nú sẽ tiếp tục thực hiện lệnh tiếp theo. Địa chỉ đớch được tớnh bằng cỏch cộng thờm độ lệch cú dấu (tương đối) trong byte thứ 3 của lệnh với nội dung trong PC. Bit được kiểm tra khụng bị thay đổi, lệnh khụng ảnh hưởng tới cỏc cờ.

3.4.4.7. Lệnh nhảy nếu 1 bit khụng được thiết lập

Cỳ phỏp cõu lệnh: JNB bit,rel

Chức năng: nếu bit đó cho cú giỏ trị bằng 0 thỡ nú nhảy tới địa chỉ đó xỏc định trong cõu lệnh, ngược lại nú sẽ tiếp tục thực hiện lệnh tiếp theo. Địa chỉ đớch được tớnh bằng cỏch cộng thờm độ lệch cú dấu (tương đối) trong byte thứ 3 của lệnh với nội dung trong PC. Bit được kiểm tra khụng bị thay đổi, lệnh khụng ảnh hưởng tới cỏc cờ.

3.4.4.8. Lệnh nhảy nếu 1 bit được thiết lập và xoỏ bit đú

Cỳ phỏp cõu lệnh: JBC bit,rel

Địa chỉ đớch được tớnh bằng cỏch cộng thờm độ lệch cú dấu (tương đối) trong byte thứ 3 của lệnh với nội dung trong PC. Lệnh khụng ảnh hưởng tới cỏc cờ.

3.4.4.9. Lệnh nhảy nếu cờ nhớ được thiết lập

Cỳ phỏp cõu lệnh: JC rel

Chức năng: nếu cờ CF cú giỏ trị bằng 1 thỡ nú nhảy tới địa chỉ đó xỏc định trong cõu lệnh, ngược lại nú sẽ tiếp tục thực hiện lệnh tiếp theo. Địa chỉ đớch được tớnh bằng cỏch cộng thờm độ lệch cú dấu trong byte thứ 2 của lệnh với nội dung trong PC. Lệnh khụng ảnh hưởng tới cỏc cờ.

3.4.4.10.Lệnh nhảy nếu cờ nhớ khụng được thiết lập

Cỳ phỏp cõu lệnh: JNC rel

Chức năng: nếu cờ CF cú giỏ trị bằng 0 thỡ nú nhảy tới địa chỉ đó xỏc định trong cõu lệnh, ngược lại nú sẽ tiếp tục thực hiện lệnh tiếp theo. Địa chỉ đớch được tớnh bằng cỏch cộng thờm độ lệch cú dấu trong byte thứ 2 của lệnh với nội dung trong PC. Lệnh khụng ảnh hưởng tới cỏc cờ.

3.4.4.11.Lệnh nhảy nếu thanh ghi A bằng 0

Cỳ phỏp cõu lệnh: JZ rel (adsbygoogle = window.adsbygoogle || []).push({});

Chức năng: nếu tất cả cỏc bit của thanh ghi A cú giỏ trị bằng 0 thỡ nú nhảy tới địa chỉ đó xỏc định trong cõu lệnh, ngược lại nú sẽ tiếp tục thực hiện lệnh tiếp theo. Địa chỉ đớch được tớnh bằng cỏch cộng thờm độ lệch cú dấu (tương đối) byte thứ 2 của lệnh với nội dung trong PC. Lệnh khụng ảnh hưởng tới cỏc cờ. Nội dung thanh ghi A khụng bị thay đổi.

3.4.4.12.Lệnh nhảy nếu thanh ghi A khỏc 0

Cỳ phỏp cõu lệnh: JNZ rel

Chức năng: nếu cú 1 hoặc nhiều bit của thanh ghi A cú giỏ trị bằng 1 thỡ nú nhảy tới địa chỉ đó xỏc định trong cõu lệnh, ngược lại nú sẽ tiếp tục thực hiện lệnh tiếp theo. Địa chỉ đớch được tớnh bằng cỏch cộng thờm độ lệch cú dấu (tương đối) byte thứ 2 của lệnh với nội dung trong PC (sau khi được tăng bởi 2). Lệnh khụng ảnh hưởng tới cỏc cờ. Nội dung thanh ghi A khụng bị thay đổi.

3.4.4.13.Lệnh nhảy khi so sỏnh 2 toỏn hạng

Chức năng: so sỏnh giỏ trị của 2 toỏn hạng đầu tiờn, nếu 2 toỏn hạng khụng bằng nhau thỡ chương trỡnh được rẽ nhỏnh. Địa chỉ đớch đến rẽ nhỏnh được tớnh bằng cỏch cộng độ lệch tương đối (cú dấu) trong byte sau cựng của lệnh với nội dung của PC. Cờ nhớ (CF) sẽ được thiết lập nếu như giỏ trị nguyờn khụng dấu của toỏn hạng đớch nhỏ hơn giỏ trị nguyờn khụng dấu của toỏn hạng nguồn, ngược lại thỡ cờ này bị xoỏ. Lệnh này khụng làm thay đổi giỏ trị của cỏc toỏn hạng.

3.4.4.14.Lệnh giảm và nhảy

Cỳ phỏp cõu lệnh: DJNZ <byte>, <rel-address>

Chức năng: giảm ụ nhớ đi 1 và nhảy tới địa chỉ cho bởi toỏn hạng thứ 2 nếu như kết quả khỏc 0. Nếu kết quả ban đầu là 00h thỡ nú chuyển qua 0FFh. Địa chỉ đớch được tớnh bằng cỏch cộng thờm độ lệch cú dấu trong byte lệnh cuối cựng với nội dung của PC (sau khi tăng PC tới byte đầu tiờn của lệnh tiếp theo). Ngăn nhớ được giảm giỏ trị cú thể là 1 thanh ghi hoặc 1 byte địa chỉ trực tiếp. Lệnh này khụng ảnh hưởng tới trạng thỏi cỏc cờ.

3.4.4.15.Lệnh tạm ngừng hoạt động

Cỳ phỏp cõu lệnh: NOP

Chức năng: tạm ngừng hoạt động khi cú lệnh này và chương trỡnh sẽ tiếp tục được thực hiện ở lệnh tiếp theo. Lệnh này khụng ảnh hưởng tới trạng thỏi cỏc thanh ghi và cỏc cờ.

Một phần của tài liệu Đồ án Tốt nghiệp thiết kế cánh tay robot phân loại sản phẩm (Trang 62)