Thông báo

Collapse
No announcement yet.

Làm sao MOV 1 địa chỉ vào thanh ghi PC

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Làm sao MOV 1 địa chỉ vào thanh ghi PC

    Chương trình đang chạy tới điểm X. gặp ngắt --> Thực hiện chương trình Ngắt.
    Thực hiện xong chương trình ngắt --> Trở lại điểm (X+1) thực hiện tiếp chương trình.
    Yêu cầu: Sau khi thực hiện xong chương trình ngắt, nó ko trở lại điểm (X+1) mà quay về 1 điểm Y nào đó bất kỳ trong chương trình.

    Giải quyết:
    Ở cuối chương trình ngắt, mình đã cho nó JMP đến 1 địa chỉ định trước, kết quả ko như ý muốn.
    Giờ mình muốn tác động vào thanh ghi PC (Program Counter) để ghi giá trị mới cho thanh ghi này, bắt chương trình thực hiện tại 1 địa chỉ mà mình mong muốn. Vậy mình phải làm sao. Trong nhóm lệnh MOV, không có MOV PC, #data.

    Mong mọi người giúp đỡ..

  • #2
    Nguyên văn bởi TheHouse Xem bài viết
    Chương trình đang chạy tới điểm X. gặp ngắt --> Thực hiện chương trình Ngắt.
    Thực hiện xong chương trình ngắt --> Trở lại điểm (X+1) thực hiện tiếp chương trình.
    Yêu cầu: Sau khi thực hiện xong chương trình ngắt, nó ko trở lại điểm (X+1) mà quay về 1 điểm Y nào đó bất kỳ trong chương trình.

    Giải quyết:
    Ở cuối chương trình ngắt, mình đã cho nó JMP đến 1 địa chỉ định trước, kết quả ko như ý muốn.
    Giờ mình muốn tác động vào thanh ghi PC (Program Counter) để ghi giá trị mới cho thanh ghi này, bắt chương trình thực hiện tại 1 địa chỉ mà mình mong muốn. Vậy mình phải làm sao. Trong nhóm lệnh MOV, không có MOV PC, #data.

    Mong mọi người giúp đỡ..
    Mình nghĩ là không dc đâu bạn ,khi bạn dùng ngắt thì bạn sẽ nhảy như thế nào ?
    Giả sử bạn dùng Ở cuối chương trình ngắt, mình đã cho nó JMP đến 1 địa chỉ định trước thì cái địa chỉ bạn nhảy đến phải có RETI và sau RETI thì nó làm gì thì bạn biết rồi ,và cái lệnh nhảy đó càng không thể ở sau RETI.Tốt nhất nếu bạn muốn kiểm tra gì thì kiểm tra ngay trong ngắt .

    Comment


    • #3
      Nhưng ở đây bạn sử dụng là ngắt nào ( ngắt Timer hay ngắt ngoài ), nếu là ngắt timer thì có thể thực hiện được ,mình có thể tính thời gian thực hiện các lệnh và thời gian ngắt timer

      Comment


      • #4
        Ngắt truyền dữ liệu nối tiếp. Mình đã giải quyết được nó trong ASM. Vấn đề là mình vẫn cho kiểm tra lại, chứ không hề nhảy được bất cứ đâu khi ở cuối chương trình ngắt.

        Còn trong C thì vẫn pó tay..

        Comment


        • #5
          Nguyên văn bởi TheHouse Xem bài viết
          Ngắt truyền dữ liệu nối tiếp. Mình đã giải quyết được nó trong ASM. Vấn đề là mình vẫn cho kiểm tra lại, chứ không hề nhảy được bất cứ đâu khi ở cuối chương trình ngắt.

          Còn trong C thì vẫn pó tay..
          Bác làm cách nào với ASM thế?

          Let's go!!!

          Comment

          Về tác giả

          Collapse

          TheHouse Tìm hiểu thêm về TheHouse

          Bài viết mới nhất

          Collapse

          Đang tải...
          X