View Single Post
Old 02-08-2008, 02:01 AM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi gastech View Post
Theo datasheet của pic thi 0 <= f <= 127, cho em hỏi ý nghĩa của điều kiện này là gì ?
Em dùng MPLAP SIM mô phỏng thì khi cho f > 127 , chương trình vẫn chạy bình thường.
Theo datasheet của PIC (PIC16F877A chẳng hạn), lệnh INCFSZ f,d là lệnh tăng thanh ghi f và bỏ qua lệnh tiếp theo nếu kết quả của phép tăng thanh ghi f là zero. Bit d chỉ thị đích ghi kết quả, d = 0 thì ghi kết quả vào W, d = 1 thì ghi kết quả ngược vào thanh ghi f. Điều kiện 0 <= f <= 127 cho thấy chỉ có 7 bit địa chỉ được dùng để định vị thanh ghi f.

Nếu bạn dùng giá trị f >= 128, trình biên dịch lẽ ra phải thông báo rằng bạn dùng giá trị vượt quá khả năng chứa trong 7-bit địa chỉ, do đó chỉ có 7 bit thấp nhất của địa chỉ sẽ được dùng để định vị f.

Bạn có thể làm thí nghiệm sau: dùng giá trị 129 cho f, và mô phỏng bằng MPLAB SIM xem thanh ghi có địa chỉ 129 (0x81) sẽ bị thay đổi hay thanh ghi có địa chỉ 1 sẽ bị thay đổi.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn