PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

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 ...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 02-07-2005, 02:44 AM   #1
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-07-2005, 02:13 PM   #2
zero2one
Đệ tử 1 túi
 
Tham gia ngày: Jun 2005
Bài gửi: 19
:
Trích:
Nguyên văn bởi falleaf
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.
Em vẫn còn đôi điều khúc mắc, mong bác nhiệt tình chỉ bảo :
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
zero2one vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề 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


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam