![]() |
|
Tài trợ cho PIC Vietnam |
MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ... |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
PIC Bang chủ
|
Nếu hiểu nôm na theo cách này, bạn có thể sẽ dễ hiểu nó hơn, một hằng là một giá trị. Giá trị đó có thể nằm trong thanh ghi dữ liệu (bộ nhớ dữ liệu), nhưng cũng có thể nằm trong lệnh điều khiển (bộ nhớ chương trình). Điều này khẳng định rằng, hằng là một giá trị.
Một khi bạn đặt một tên nào đó, để đại diện cho một hằng số, có nghĩa là thay vì bạn viết cái giá trị đó, thì bạn viết cái tên đại diện đó, để dễ nhớ. Chẳng hạn, bạn viết chữ pi, đại diện cho hằng số có giá trị 3.1415926.... Trong khi đó, nếu bạn đặt một biến pi, thì có nghĩa là bạn xác định địa chỉ của thanh ghi dữ liệu nào đó, mà mỗi khi bạn truy xuất đến biến pi, có nghĩa là bạn đang thao tác với thanh ghi ở địa chỉ mà biến pi đại diện. Ví dụ: bạn đặt biến pi ở thanh ghi 0x20 chẳng hạn. Điều đó có nghĩa là khi ban làm gì với biến pi, chính là bạn đang làm việc với thanh ghi ở địa chỉ 0x20. Nhưng bạn sẽ thấy rằng, vậy biến pi và hằng số pi có gì khác nhau? Bây giờ biến pi và hằng pi cũng đều mang giá trị cả. Nhưng các bạn nên nhớ, trong câu lệnh lúc nào vị trí của biến (thanh ghi) F, và vị trí của hằng số k (trong cấu trúc một câu lệnh MPASM, tôi sẽ post lại bài này từ dddt). có sự phân biệt rõ ràng. Vậy tùy theo vị trí bạn đặt nó ở đâu, nó sẽ là biến, hoặc là hằng. Nếu là biến, nó chỉ mang giá trị của dịa chỉ của thanh ghi nằm trong bộ nhớ dữ liệu, nếu là hằng, nó nằm đâu cũng được kể cả ở bộ nhớ dữ liệu và bộ nhớ chương trình. Các bạn cần tham khảo bài viết tập lệnh MPASM và kiến trúc PIC và bài kỹ thuật bảng, đã được đăng tại www.diendandientu.com. Khi có thời gian, tôi sẽ chuyển bài viết đó về đây để các bạn xem.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 1 túi
Tham gia ngày: Jun 2005
Bài gửi: 19
: |
Trích:
Khi viết : LABLE1 EQU 0x20 .... MOVLW 0xFF MOVWF LABLE1 -> lúc này em muốn LABLE1 là một biến, đặt nó ở vị trí 0x20 trong RAM -> OK. Còn : LABLE2 EQU 0x20 ... MOVLW LABLE2 -> em muốn LABLE2 là một hằng mang giá trị 0x20 và OK. Nhưng nếu gộp lại : LABLE3 EQU 0x20 ... MOVLW 0xFF MOVWF LABLE3 MOVLW LABLE3 ;!!!!???? ![]() thì W = ?, có gì sai không ? Như vậy, chốt lại : cụ thể với câu lệnh "LABLE3 EQU 0x20" thì trình dịch nó có hiểu LABLE3 là hằng hay là một thanh ghi (biến) ? Hay là nó phải phụ thuộc vào những thao tác phía sau này, xem người dùng định nghĩa nó như hằng hay thanh ghi ? ![]() Ý của em là vậy, vì mới học nên thắc mắc lung tung, thấy bác nhiệt tình nên em mới dám hỏi. Mong bác chỉ bảo ![]() |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Các bạn mới học PIC lưu ý luồng này (Upd. 16/10/2005) | falleaf | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 4 | 10-10-2005 06:23 PM |
Các bạn mới học PIC lưu ý luồng này (Upd. 16/10/2005) | falleaf | PIC - Thiết kế và Ứng dụng | 4 | 10-10-2005 06:23 PM |
Các bạn mới học PIC lưu ý luồng này (Upd. 16/10/2005) | falleaf | Chương trình dịch & các công cụ mô phỏng | 0 | 24-05-2005 12:52 AM |
Các bạn mới học PIC lưu ý luồng này (Upd. 16/10/2005) | falleaf | MPASM | 0 | 24-05-2005 12:52 AM |
Các bạn mới học PIC lưu ý luồng này (Upd. 16/10/2005) | falleaf | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 0 | 24-05-2005 12:52 AM |