0000 Cộn g1 (trở thành số 80 dạng Hex)

Một phần của tài liệu GIÁO TRÌNH VI XỬ LÝ 8051 pdf (Trang 74 - 77)

DIV A B; A= 09 (th−ơng số) ;B =05 (số d−) Lu ý cỏc điểm sau khi thực hiện AB

1000 0000 Cộn g1 (trở thành số 80 dạng Hex)

Vậy - 128 = 80H là biĨu diƠn số có dấu dạng bù 2 cđa - 128.

Từ cỏc vớ dụ trờn đõy ta thấy rừ ràng rằng dải của cỏc số õm cú dấu 8 bit là - 1 đến - 128. Dới đõy là liệt kờ cỏc số có dấu 8 bit:

Số thập phân Số nhị phõn Số Hex -128 1000 0000 80 -127 1000 0001 81 -126 1000 0010 82 ... ................. ... -2 1111 1110 FE -1 1111 1111 FF 0 0000 0000 00 +1 0000 0001 01 +2 0000 0010 02 ... .................. ... -127 0111 1111 FE

6.3.2 Vấn đề tràn trong cỏc phộp toỏn với số cú dấụ

Khi sư dơng các số có dấu xuất hiện một vấn đề rất nghiờm trọng mà phải đợc sử lý. Đú là vấn đề tràn, 8051 bỏo cú lỗi bằng cỏch thiết lập cờ tràn OV nhng trỏch nhiệm của lập trỡnh viờn là phải cẩn thận với kết quả sa CPU chỉ hiĨu 0 và 1 và nú làm ngơ với việc chuyển đổi số õm, số dơng của con ngờ Vậy tràn số là gỡ? Nếu kết quả cđa một phộp toỏn trờn cỏc số cú dấu mà quỏ lớn đối với thanh ghi thì xuất hiện sự tràn số và lập trỡnh viờn phải đợc cảnh bỏ Xột vớ dụ 6.12 dới đõ

Khảo sỏt đoạn mR sau và phõn tớch kết quả. MOV A, # + 96 ; A = 0110 0000 (A = 60H) MOV R1, # + 70 ; R1 = 0100 0110 (R1 = 46H) AĐ A, R1 ; A = 1010 0110 = A6H = - 90 Sai !!! Lời giải: + 96 0110 0000 + + 70 0100 0110 - 166 1010 0110 và OV = 1

Theo CPU kết quả là -90 và đú là kết quả sai nờn CPU bật cờ OV = 1 để bỏo tràn số.

Trong vớ dụ 6.12 thỡ + 96 đợc cộng với + 70 và kết quả theo CPU là - 90. Tại sao vậỷ Lý do là kết quả của + 96 + 70 = 172 lớn hơn số mà thanh ghi A cú thể chứa đợc. Cũng nh tất cả mọi thanh ghi 8 bit khỏc, thanh ghi A chỉ chứa đợc đến số + 127. Cỏc nhà thiết kế của PCU tạo ra cờ tràn OV phục vụ riờng cho mục đớch bỏo cho lập trỡnh viờn rằng kết quả của phộp toỏn số cú dấu là sa

6.3.3 Khi nào thỡ cờ tràn OV đợc thiết lập?

Trong các phép tốn với số có dấu 8 bit thì cờ OV đợc bật lờn 1 khi xuất hiện một trong hai điỊu kiƯn sau:

1. Cờ nhớ từ D6 sang D7 nh−ng khơng có nhớ ra từ D7 (cờ CY = 0) 2. Có nhớ ra từ D7 (cờ CY = 1) nh−ng khơng có nhớ từ D6 sang D7

Hay núi cỏch khỏc là cờ tràn OV đợc bật lờn 1 nếu cú nhớ từ D6 sang D7 hc từ D7 nhng khụng đồng thời xảy ra cả ha Điều này cú nghĩa là nếu cú nhớ cả từ D6 sang D7 và từ D7 ra thì cờ OV = 0. Trong ví dơ 6.12 vỡ chỉ cú nhớ từ D7 ra nờn cờ OV = 1. Trong ví dụ 6.13, vớ dụ 6.14 và 6.15 cú minh hoạ thờm vỊ sư dơng cờ tràn trong các phép số học với số có dấụ

Ví dụ 6.13:

HRy quan sỏt đoạn mR sau để ý đến vai trũ của cờ OV. MOV A, # -128 ; A = 1000 0000 (A= 80H)

MOV R4, # -2 ; R4 = 1111 (R4 = FEH)

AĐ A, R4 ; A = 0111 1110 (A = 7EH = +126, invalid) Lời giải:

- 128 1000 0000 + - 2 1111 1110 + - 2 1111 1110

-130 0111 1110 và OV = 1

Theo CPU thì kết quả + 126 là kết quả sai, nờn cờ OV = 1. Ví dụ 6.14:

MOV R1, # -5 ; R1 = 1111 1011 (R1 = FBH) AĐ A, R1 ; A = 1111 1001 (A = F9H = -7, correct, OV = 0) AĐ A, R1 ; A = 1111 1001 (A = F9H = -7, correct, OV = 0) Lời giải: - 2 1111 1110 + - 5 1111 1011 - 7 1111 1001 và OV = 0

Theo CPU thỡ kết quả - 7 là đúng nên cờ OV = 0. Ví dụ 6.15:

Theo dừi đoạn mR sau, chú ý vai trò cđa cờ OV. MOV A, # +7 ; A = 0000 0111 (A = 07H) MOV R1, # +18 ; R1 = 0001 0010 (R1 = 12H) AĐ A, R1 ; A = 1111 1001 (A = 19H = -25, correct, OV = 0) Lời giải: 7 0000 0111 - 18 0001 0010 25 0001 1001 và OV = 0

Theo CPU thỡ kết quả - 25 là đỳng nờn cờ OV = 0.

Từ cỏc vớ dụ trờn đõy ta có thể kết luận rằng trọng bất kỳ phép cộng số có dấu nào, cờ OV đều bỏo kết quả là đỳng hay sa Nếu cờ OV = 1 thỡ kết quả là sai, cũn nếu OV = 0 thì kết quả là đỳng. Chỳng ta cú thể nhấn mạnh rằng, trong phép cộng các số khụng dấu ta phải hiển thị trạng thỏi của cờ CY (cờ nhớ) và trong phép cộng cỏc số cú dấu thỡ cờ tràn OV phải đợc theo dừi bởi lập trỡnh viờn. Trong 8051 thỡ cỏc lệnh nh JNC và JC cho phộp chơng trỡnh rẽ nhỏnh ngay sau phép cộng các số khụng dấu nh ở phần 6.1. Đối với cờ tràn OV thỡ khụng cú nh vậỵ Tuy nhiên, điều này cú thể đạt đợc bằng lệnh JB PSW.2 hoặc JNB PSW.2 vỡ PSW thanh ghi cờ cú thể đỏnh địa chỉ theo bit.

Một phần của tài liệu GIÁO TRÌNH VI XỬ LÝ 8051 pdf (Trang 74 - 77)