Các lệnh toán học

Một phần của tài liệu BÀI GIẢNG MÔN VI ĐIỀU KHIỂN 8051 (Trang 62)

- Nếu ở mức thấp, chương trình được thi hành từ bộ nhớ mở rộng (tối đa đến 64 Kbyte).

4.2.4. Các lệnh toán học

Thực hiện các phép tính cơ bản như +, -, *, /, … Kết quả sau khi thực hiện lệnh được lưu vào toán hạng đầu tiên trong lệnh

Các lệnh toán học như:

ADD, Phép cộng ADDC, Phép cộng có nhớ SUBB, Phép trừ

INC, Tăng giá trị thêm 1 đơn vị ( +1 ) DEC, Giảm giá trị đi 1 đơn vị ( -1 )

Chương 1. Giới thiệu chung về vi điều khiển

ADD

ADD A, nguồn ;A = A + nguồn

Lệnh ADD được dùng để cộng hai toán hạng. Toán hạng đích luôn là thanh ghi A trong khi đó toán hạng nguồn có thể là một thanh ghi dữ liệu trực tiếp hoặc là ở trong bộ nhớ.

Ví dụ:

Hãy biểu diễn xem các lệnh dưới đây tác động đến thanh ghi cờ như thế nào?

MOV A, # 0F5H ; A = F5H

ADD

Lời giải:

F5H 1111 0101

+ 0BH + 0000 1011 1 00H 0000 0000

Sau phép cộng, thanh ghi A (đích) chứa 00 và các cờ sẽ như sau: CY = 1 vì có phép nhớ từ D7

P = 0 vì số các số 1 là 0 (chẵn)

Chương 1. Giới thiệu chung về vi điều khiển

ADD

Ví dụ :

MOV A, #38H

ADD A, #2FH ; Sau khi cộng A = 67H, CY = 0

Lời giải: 38 00111000 + 2F 00101111 67 01100111 Cờ CY = 0 vì không có nhớ từ D7 Cờ AC = 1 vì có nhớ từ D3 sang D4 Cờ P = 1 vì thanh ghi A có 5 bit 1 (lẻ)

ADD

Bài tập:

Nạp giá trị 55H vào P1 Nạp giá trị CCH vào P2

Chương 1. Giới thiệu chung về vi điều khiển

SUBB

SUBB A, nguồn ; A = A - nguồn - CY.

Trong rất nhiều các bộ xử lý có hai lệnh khác nhau cho phép trừ đó là SUB và SUBB (trừ có mượn). Có hai trường hợp cho lệnh SUBB là: với CY = 0 và với CY = 1. Lưu ý ở đây ta dùng cờ CY để mượn.

Lệnh SUBB với CY = 0. Lệnh SUBB với CY = 1.

SUBB

Lệnh SUBB với CY = 0.

-Thực hiện lấy bù 2 của số trừ (toán hạng nguồn) -Cộng nó vào số bị trừ (A) -Đảo nhớ Ví dụ: MOV A,#86h SUBB A,#62h 86 1000 0110 Số bị trừ - 62 0110 0010 Số trừ

Chương 1. Giới thiệu chung về vi điều khiển

SUBB

Lệnh SUBB với CY = 0.

-Thực hiện lấy bù 2 của số trừ (toán hạng nguồn) -Cộng nó vào số bị trừ (A) -Đảo nhớ Ví dụ: MOV A,#62h SUBB A,#96h 62 0110 0010 Số bị trừ - 96 1001 0110 Số trừ 0110 1010 mã bù 2 CY =0 1100 1100 Cộng với số bị trừ CY =1 CC Đảo CY, kết quả - CC

SUBB

Lệnh SUBB khi CY = 1.

Lệnh này được dùng đối với các số nhiều byte và sẽ theo dõi việc mượn của toán hạng thấp. Nếu CY = 1 trước khi thực hiện SUBB thì nó cũng trừ 1 từ kết quả.

Ví dụ: CLR C ; CY = 0

MOV A, #62H ; A = 62H

SUBB A, #96H ; 62H - 96H = CCH với CY = 1

MOV P1, A ; Lưu kết quả vào P1

Chương 1. Giới thiệu chung về vi điều khiển MUL MUL AB ;A × Β ϖ◊ κ τ θυ 16 βιτ ế đượ đặχ τ τρονγ Α ϖ◊ Β. Κηι νην βψτε ϖ ι βψτε τη µ τ το〈ν η νγ πη ι τρονγ τηανη γηι Α ϖ◊ ớ ộ ạ ả το〈ν η νγ τη ηαι πη ι τρονγ τηανη γηι Β. Σαυ κηι νην κ τ θυ τρονγ ạ ứ ả ở ế ả ở χ〈χ τηανη γηι Α ϖ◊ Β. ς δ :ụ ΜΟς Α, #25Η ; Ν π ϖ◊ο Α γι〈 τρ 25Η ΜΟς Β, #65Η ; Ν π ϖ◊ο Β γι〈 τρ 65Η ΜΥΛ ΑΒ ; 25Η∗65Η = 0Ε99 ϖ ι Β = 0ΕΗ ϖ◊ Α = 99Η

Một phần của tài liệu BÀI GIẢNG MÔN VI ĐIỀU KHIỂN 8051 (Trang 62)

Tải bản đầy đủ (PPTX)

(127 trang)