Lập trình cho 8051: Số học và p lôgic
Số trang: 22
Loại file: pdf
Dung lượng: 177.49 KB
Lượt xem: 10
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Phép tính số học có dấu và không dấu Số nhị phân và mã BCD Lệnh cộng Lệnh trừ Lệnh nhân Lệnh chia Các phép toán lôgic Các phép toán quay vòng và dịch Địa hỉ h á Đị chỉ hoá bộ nhớ theo bit và các lệnh đơn bit hớ th à á lệ h đPhép cộng không dấu• Add A, source ; A=A+source ợ • Có nhớ thì bit nhớ được lưu vào cờ CY mov A, #0F5H , ; A=F5+B0=00, CY=1 , add A, #0BH • Phép cộng số 16 bit– – – – Addc A, source...
Nội dung trích xuất từ tài liệu:
Lập trình cho 8051: Số học và p lôgicLập trình cho 8051: Số học và p lôgic Bài 4 Bộ môn TĐ Khoa KTĐK Các chủ đề• Phép tính số học có dấu và không dấu• Số nhị phân và mã BCD• Lệnh cộng• Lệnh trừ• Lệnh nhân• Lệnh chia• Các phép toán lôgic• Các phép toán quay vòng và dịch• Địa hỉ h á Đị chỉ hoá bộ nhớ theo bit và các lệnh đơn bit hớ th à á lệ h đ Phép cộng không dấu• Add A, source ; A=A+source• Có nhớ thì bit nhớ được lưu vào cờ CY ợ mov A, #0F5H add A, #0BH , ; A=F5+B0=00, CY=1 ,• Phép cộng số 16 bit – Addc A, source ; A=A+source+CY , – Cộng các byte thấp sử dụng lệnh add – Ghi kết quả – cộng các byte cao hơn sử dụng addc Phép cộng không dấu• Ví dụ về p p cộng 16 bit ụ phép ộ g• Cộng UUVV và PPQQ clr C mov A, QQ add A, VV mov r6, A mov A, PP addc A, UU mov r7, A• Kết quả 16 bit cuối cụng trong r7:r6 và cờ CY ế ố Phép cộng BCD• BCD - số thập phân được mã hoá bởi số nhị phân – 4 bit đ được sử d ử dụng để biểu diễn số thập phân từ 0-9 biể diễ ố thậ hâ 09• Hai số trong mã BCD được biểu diễn trong 1 byte – 17 PBCD = 17 D = 11H• Phép cộng số BCD có thể không tạo ra số BCD hợp lệ. Do vậy phải dùng lệnh chuẩn hoá số BCD (da A) để làm chính xác nó• Sau khi cộng 2 số BCD gọi lệnh d để chuẩn h số PBCD ố i l h da h ẩ hoá ố mov A, #47H ; số BCD đầu tiên = 47d mov B, #25H B ; số BCD thứ hai = 25d add A, B ; A=6Ch (kết quả cộng nhị phân của 47H và 25H) da A ; A=72H (kết quả của phép cộng BCD) Phép cộng BCD• Để chính xác một số BCD không hợp lệ, cộng 6 vào số đó nếu nó lớn hơn 9• Lệnh da thực hiện – Nếu phần thấp lớn hơn 9 hoặc AC =1 thì cộng 6 (0110) vào phần thấp hầ hấ – Nếu phần cao lớn hơn 9 hoặc CY=1 thì cộng 6 vào phần cao• Lệ h da chỉ thự hiệ với lệnh cộng ADD Với các Lệnh d hỉ thực hiện ới lệ h ộ ADD. á lệnh khác (inc, sub vv...), thì việc làm chính xác nó được thực hiện thủ công (bằng tay) Phép trừ không dấu• Subb x, y ; x=x-y có mượn từ CY• Thao tác: – Biến đổi số bị trừ sang số bù hai (y) – Cộng nó với số trừ (x) – Nếu cờ CY được thiết lập sau khi thực hiện phép trừ, thì kết trừ quả là một số âm và đưa ra kết quả là số bù hai• lệnh subb thực hiện trừ có mượn, nếu CY được thiết lập trước lệnh call. Được sử dụng để thực hiện phép ể trừ số 16 bit – Để thực hiện phép trừ đơn giản xoá CY trước khi gọi lệnh giản, subb Phép ừ không dấu Phé trừ khô dấ• Ví dụ clr c ; clear CY for sub operation mov A, #4CH ; subb A, #6EH ; two operands, do 4C – 6E jnc done ; if CY==0 result is positive cpl A ; CY=1, result negative. So find 2’s complement inc A ; by complementing A and adding 1 to itdone: mov R1, A ; final result in R1• Trừ 16 bit 2762H-1296H clr C ; clear Cy mov A, #62H ; subb A #96H A, ; 62H – 96H = CCH and CY=1 CY 1 mov R7, A ; store the lower byte of the result in R7 mov A, #27H ; now subtract the upper bytes subb A, #12H ; 27H – 12H – 1 = 14H mov R6, A, ; store upper byte of result in R6. pp y ; Final 16bit result is in R6:R7 Phép nhân và phép chia• MUL AB; AxB, đặt kết quả vào BA mov A, #25H A ; operand1: 25H mov B, #65H ; operand2: 65H mul AB ; 25H * 65H = E99H ; B = 0EH, A = 99H• DIV AB; A/B, Thương số đặt vào A và số dư chứa trong B h mov A, #95H mov B, #10 B div AB ; A = 9 (quotient), B = 5 (remainder) Phép tí h ố học ó dấu Phé tính số h có dấ - Nội dung d• Giới thiệu về số có dấu – Sử dụng một bit làm bit dấu – Bit cao nhất MSB được gán cho bit dấu – Các bit còn lại biểu diễn giá trị• 8051 chỉ có các thanh ghi 8 bit – Các số có dấu có thể chỉ có 7 bit giá trị g ị – Các số dương trong 8051 = 0 tới +127 (7 bit) – Các số âm từ -128 đến -1 128 1Phép tí h ố học ó dấu Các ố âmPhé tính số h có dấ – Cá số â• Biểu diễn số âm với số có dấu – Bit dấu (bit cao nhất) là 1 – Giá trị biểu diễn dưới dạng số bù 2• Các ví dụ Các số có dấu – Cách dùng• Dữ liệu đựoc tạp trung và lưu lại như một mảng của các số có dấu – Một số phần tử trong mảng có thể là âm, còn các phần tử khác có thể là dương – Việ xác đị h các số d Việc á định á ố dương thông qua MSB Nếu hô MSB. Nế MSB = 1, số đó là số âm• Giống như các phép toán số học (ađ sub mul, (ađ, sub, mul div …) có thể cần phải thực hiện trên các phần tử mảng và kết quả có thể là âm hoặc dương mảng, Phép tính số học có dấu• 8051 biểu diễn số âm trong lệnh sub. Nhưng không đủ• Khi cần sử dụng các số có dấu, người lập trình phải sử dụng phép tính số học có dấu• Hiện tượng tràn phải được xử lý. Cờ nhớ là không đủ bởi vì chỉ có 7 bit mang giá trị của số có dấu. ấ• 8051 đưa ra một cờ khác – OV (cờ tràn) cho mục đích này Phép tính số học có dấu• Phép cộng• Phép trừ Hiện tượng tràn• Cờ tràn có thể xu ...
Nội dung trích xuất từ tài liệu:
Lập trình cho 8051: Số học và p lôgicLập trình cho 8051: Số học và p lôgic Bài 4 Bộ môn TĐ Khoa KTĐK Các chủ đề• Phép tính số học có dấu và không dấu• Số nhị phân và mã BCD• Lệnh cộng• Lệnh trừ• Lệnh nhân• Lệnh chia• Các phép toán lôgic• Các phép toán quay vòng và dịch• Địa hỉ h á Đị chỉ hoá bộ nhớ theo bit và các lệnh đơn bit hớ th à á lệ h đ Phép cộng không dấu• Add A, source ; A=A+source• Có nhớ thì bit nhớ được lưu vào cờ CY ợ mov A, #0F5H add A, #0BH , ; A=F5+B0=00, CY=1 ,• Phép cộng số 16 bit – Addc A, source ; A=A+source+CY , – Cộng các byte thấp sử dụng lệnh add – Ghi kết quả – cộng các byte cao hơn sử dụng addc Phép cộng không dấu• Ví dụ về p p cộng 16 bit ụ phép ộ g• Cộng UUVV và PPQQ clr C mov A, QQ add A, VV mov r6, A mov A, PP addc A, UU mov r7, A• Kết quả 16 bit cuối cụng trong r7:r6 và cờ CY ế ố Phép cộng BCD• BCD - số thập phân được mã hoá bởi số nhị phân – 4 bit đ được sử d ử dụng để biểu diễn số thập phân từ 0-9 biể diễ ố thậ hâ 09• Hai số trong mã BCD được biểu diễn trong 1 byte – 17 PBCD = 17 D = 11H• Phép cộng số BCD có thể không tạo ra số BCD hợp lệ. Do vậy phải dùng lệnh chuẩn hoá số BCD (da A) để làm chính xác nó• Sau khi cộng 2 số BCD gọi lệnh d để chuẩn h số PBCD ố i l h da h ẩ hoá ố mov A, #47H ; số BCD đầu tiên = 47d mov B, #25H B ; số BCD thứ hai = 25d add A, B ; A=6Ch (kết quả cộng nhị phân của 47H và 25H) da A ; A=72H (kết quả của phép cộng BCD) Phép cộng BCD• Để chính xác một số BCD không hợp lệ, cộng 6 vào số đó nếu nó lớn hơn 9• Lệnh da thực hiện – Nếu phần thấp lớn hơn 9 hoặc AC =1 thì cộng 6 (0110) vào phần thấp hầ hấ – Nếu phần cao lớn hơn 9 hoặc CY=1 thì cộng 6 vào phần cao• Lệ h da chỉ thự hiệ với lệnh cộng ADD Với các Lệnh d hỉ thực hiện ới lệ h ộ ADD. á lệnh khác (inc, sub vv...), thì việc làm chính xác nó được thực hiện thủ công (bằng tay) Phép trừ không dấu• Subb x, y ; x=x-y có mượn từ CY• Thao tác: – Biến đổi số bị trừ sang số bù hai (y) – Cộng nó với số trừ (x) – Nếu cờ CY được thiết lập sau khi thực hiện phép trừ, thì kết trừ quả là một số âm và đưa ra kết quả là số bù hai• lệnh subb thực hiện trừ có mượn, nếu CY được thiết lập trước lệnh call. Được sử dụng để thực hiện phép ể trừ số 16 bit – Để thực hiện phép trừ đơn giản xoá CY trước khi gọi lệnh giản, subb Phép ừ không dấu Phé trừ khô dấ• Ví dụ clr c ; clear CY for sub operation mov A, #4CH ; subb A, #6EH ; two operands, do 4C – 6E jnc done ; if CY==0 result is positive cpl A ; CY=1, result negative. So find 2’s complement inc A ; by complementing A and adding 1 to itdone: mov R1, A ; final result in R1• Trừ 16 bit 2762H-1296H clr C ; clear Cy mov A, #62H ; subb A #96H A, ; 62H – 96H = CCH and CY=1 CY 1 mov R7, A ; store the lower byte of the result in R7 mov A, #27H ; now subtract the upper bytes subb A, #12H ; 27H – 12H – 1 = 14H mov R6, A, ; store upper byte of result in R6. pp y ; Final 16bit result is in R6:R7 Phép nhân và phép chia• MUL AB; AxB, đặt kết quả vào BA mov A, #25H A ; operand1: 25H mov B, #65H ; operand2: 65H mul AB ; 25H * 65H = E99H ; B = 0EH, A = 99H• DIV AB; A/B, Thương số đặt vào A và số dư chứa trong B h mov A, #95H mov B, #10 B div AB ; A = 9 (quotient), B = 5 (remainder) Phép tí h ố học ó dấu Phé tính số h có dấ - Nội dung d• Giới thiệu về số có dấu – Sử dụng một bit làm bit dấu – Bit cao nhất MSB được gán cho bit dấu – Các bit còn lại biểu diễn giá trị• 8051 chỉ có các thanh ghi 8 bit – Các số có dấu có thể chỉ có 7 bit giá trị g ị – Các số dương trong 8051 = 0 tới +127 (7 bit) – Các số âm từ -128 đến -1 128 1Phép tí h ố học ó dấu Các ố âmPhé tính số h có dấ – Cá số â• Biểu diễn số âm với số có dấu – Bit dấu (bit cao nhất) là 1 – Giá trị biểu diễn dưới dạng số bù 2• Các ví dụ Các số có dấu – Cách dùng• Dữ liệu đựoc tạp trung và lưu lại như một mảng của các số có dấu – Một số phần tử trong mảng có thể là âm, còn các phần tử khác có thể là dương – Việ xác đị h các số d Việc á định á ố dương thông qua MSB Nếu hô MSB. Nế MSB = 1, số đó là số âm• Giống như các phép toán số học (ađ sub mul, (ađ, sub, mul div …) có thể cần phải thực hiện trên các phần tử mảng và kết quả có thể là âm hoặc dương mảng, Phép tính số học có dấu• 8051 biểu diễn số âm trong lệnh sub. Nhưng không đủ• Khi cần sử dụng các số có dấu, người lập trình phải sử dụng phép tính số học có dấu• Hiện tượng tràn phải được xử lý. Cờ nhớ là không đủ bởi vì chỉ có 7 bit mang giá trị của số có dấu. ấ• 8051 đưa ra một cờ khác – OV (cờ tràn) cho mục đích này Phép tính số học có dấu• Phép cộng• Phép trừ Hiện tượng tràn• Cờ tràn có thể xu ...
Tài liệu có liên quan:
-
Đề cương chi tiết học phần Trí tuệ nhân tạo
12 trang 482 0 0 -
Đề cương chi tiết học phần Vi xử lý
12 trang 329 0 0 -
79 trang 250 0 0
-
ĐỀ TÀI THIẾT KẾ QUY TRÌNH CÔNG NGHỆ GIA CÔNG BÍCH ĐUÔI ( TẬP THUYẾT MINH)
54 trang 237 0 0 -
Đồ án: Kỹ thuật xử lý ảnh sử dụng biến đổi Wavelet
41 trang 228 0 0 -
Luận văn Thạc sĩ Kỹ thuật: Ứng dụng Blockchain trong bảo mật IoT
90 trang 203 1 0 -
Đồ án tốt nghiệp: Thiết kế kỹ thuật máy ép thủy lực tải trọng 70 tấn phục vụ cho nhà máy Z751
84 trang 190 0 0 -
65 trang 186 0 0
-
Giáo trình công nghệ chế tạo máy - Chương 11: Các phương pháp gia công mặt phẳng
17 trang 171 0 0 -
Đồ án: Thiết kế bộ điều khiển luật PID điều khiển động cơ DC
94 trang 168 0 0