PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   ASM của PIC18? (http://www.picvietnam.com/forum/showthread.php?t=2553)

lungtung 01-07-2008 12:00 PM

ASM của PIC18?
 
Trong PIC18f có phần mở rộng với một số lệnh khác.
VD: MOVSF [00h],20h
Có phải lệnh này tương đương với lệnh mov 20h,@r0 với r0 = FSR2 phải không?
Vậy khi mô phỏng với MPLAB thì làm sao xem được kết quả của lệnh này?
Cám Ơn!

namqn 01-07-2008 09:16 PM

Trích:

Nguyên văn bởi lungtung (Post 17193)
Trong PIC18f có phần mở rộng với một số lệnh khác.
VD: MOVSF [00h],20h
Có phải lệnh này tương đương với lệnh mov 20h,@r0 với r0 = FSR2 phải không?
Vậy khi mô phỏng với MPLAB thì làm sao xem được kết quả của lệnh này?
Cám Ơn!

Lệnh MOVSF [00h], 20h sẽ sao chép nội dung của ô nhớ có địa chỉ (nội dung của FSR2 + 00h) vào ô nhớ có địa chỉ 20h. Tương đương với lệnh trên hay không thì tôi không rõ, vì không còn nhớ những gì liên quan đến MCS51.

Khi mô phỏng bằng MPLAB SIM, bạn sẽ phải làm một cách gián tiếp thôi, theo dõi nội dung của FSR2 và theo dõi ô nhớ mà (FSR2+00h) trỏ tới, đồng thời theo dõi nội dung của ô nhớ 20h.

Thân,

lungtung 05-07-2008 12:08 PM

Đọc tài liệu thì thấy như vậy, nhưng khi mô phỏng thì không thấy thay đổi như ý mình muốn. Chương trình tôi xoá thanh ghi FSR2, sau đó thực hiện lệnh movsf [01h],20h với giá trị trước đó của ô nhớ 01 là 19H, 20H là 00H, nhưng sau khi chạy lệnh này thử thì các giá trị không thay đổi gì hết. Giá trị các ô nhớ tôi xem trong file Registers.

namqn 05-07-2008 05:53 PM

Bạn thử dùng cửa sổ Watch (mênu View), thêm thanh ghi FSR2, ô nhớ có địa chỉ 01h và 20h vào danh sách các ô nhớ cần theo dõi. Sau đó chạy debug từng lệnh bằng MPLAB SIM . Tôi đã mô phỏng như vậy rồi, và thấy các ô nhớ tương ứng thay đổi giá trị.

Thân,

lungtung 07-07-2008 04:53 PM

Vậy cách thêm các ô nhớ có địc chỉ xác định vào danh sách Watch là như thế nào?
Tôi làm hoài mà không được.

namqn 07-07-2008 07:35 PM

Trích:

Nguyên văn bởi lungtung (Post 17283)
Vậy cách thêm các ô nhớ có địc chỉ xác định vào danh sách Watch là như thế nào?
Tôi làm hoài mà không được.

Đơn giản. Bạn nhấp nút trái chuột vào field Address của ô nhớ trống kế tiếp trong danh sách (bạn chỉ có thể chọn ô nhớ trống đó thôi), nó sẽ chuyển thành màu trắng. Gõ địa chỉ cần xem (dạng hex) vào, không cần gõ cơ số. Ví dụ, để xem ô nhớ địa chỉ 20h, bạn chỉ cần gõ 20 vào đó.

Thân,

lungtung 11-07-2008 11:56 AM

Cám ơn bác. Tôi đã làm được rồi.
Còn vấn đề nghiên cứu về anhh pic18f này chắc phải dời lại sau quá. Dạo này bận quá. Có gì sau này hỏi tiếp nhé. Cám ơn trước.


Múi giờ GMT. Hiện tại là 04:06 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam