Beberapa latar belakang. Saya menggunakan MPLABx dengan PicKit2 untuk memprogram berbagai jenis foto. Saat ini 16F887. Saya mencoba untuk tetap berpegang pada rantai alat PICC Hi-Tech tapi saya semakin tidak senang dengan bagaimana beberapa hal dirakit. Operasi yang harus relatif cepat (mengingat siklus instruksi 500ns pada 8Mhz) membutuhkan waktu hingga 20 kita untuk menyelesaikannya. Jadi saya sudah mulai memasukkan kode ASM saya sendiri untuk menghadapinya.
Namun, saya mengalami kesulitan memahami peta memori yang disediakan dalam lembar data di Halaman 20.
Memori program dimulai pada 0005h. Namun halaman 23 menunjukkan alamat file register tujuan khusus, seperti Port A misalnya. Alamat Port A ditampilkan sebagai "05h".
Saya bingung bagaimana membedakan antara lokasi memori 0005h, dan register tujuan khusus yang terletak di 05h. Bagaimana cara mereferensikan register tujuan khusus?
Saya telah melakukan pemrograman assembler yang cukup luas untuk chip HC11 yang lebih tua, tetapi ini adalah usaha pertama saya ke PIC asm coding. Setiap bantuan di sini akan dihargai.
Apa yang Dave katakan, tetapi saya juga ingin menunjukkan bahwa memori program dimulai pada 0, bukan 5. Pada saat reset, prosesor mengatur PC ke 0 dan mulai berjalan. Pada interupsi, prosesor secara efektif menyebabkan panggilan ke lokasi 4 dan mematikan bit aktif interupsi global. Program lokasi memori 5 tidak istimewa, selain ini akan menjadi instruksi kedua dari rutin interupsi jika Anda memiliki rutin interupsi.
sumber