Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Trong phần này chúng ta nghiên cứu các thanh ghi chính của 8051 và trình bày cách sử dụng với các lệnh đơn giản MOV và ADD | CHƯƠNG 2 Lập trình hợp ngữ 8051 2.1 Bên trong 8051. Trong phần này chúng ta nghiên cứu các thanh ghi chính của 8051 và trình bày cách sử dụng với các lệnh đơn giản MOV và ADD. 2.1.1 Các thanh ghi. Trong CPU các thanh ghi được dùng để lưu cất thông tin tạm thời những thông tin này có thể là một byte dữ liệu cần được sử lý hoặc là một địa chỉ đến dữ liệu cần được nạp. Phần lớn các thanh ghi của 8051 là các thanh ghi 8 bit. Trong 8051 chỉ có một kiểu dữ liệu Loại 8 bit 8 bit của một thanh ghi được trình bày như sau D7 D6 D5 D4 D3 D2 D1 D0 với MSB là bit có giá trị cao nhất D7 cho đến LSB là bit có giá trị thấp nhất D0. MSB - Most Sigfican bit và LSB - Leart Significant Bit . Với một kiểu dữ liệu 8 bit thì bất kỳ dữ liệu nào lớn hơn 8 bit đều phải được chia thành các khúc 8 bit trước khi được xử lý. Vì có một số lượng lớn các thanh ghi trong 8051 ta sẽ tập trung vào một số thanh ghi công dụng chung đặc biệt trong các chương kế tiếp. Hãy tham khảo phụ lục Appendix A.3 để biết đầy đủ về các thanh ghi của 8051. Hình 2.1 a Một số thanh ghi 8 bit của 8051 b Một số thanh ghi 16 bit của 8051 DPTR PC DPH DPL PC program counter Các thanh ghi được sử dụng rộng rãi nhất của 8051 là A thanh ghi tích luỹ B R0 -R7 DPTR con trỏ dữ liệu và PC bộ đếm chương trình . Tất cả các dữ liệu trên đều là thanh g hi 8 bit trừ DPTR và PC là 16 bit. Thanh ghi tích luỹ A được sử dụng cho tất cả mọi phép toán số học và lô-gíc. Để hiểu sử dụng các thanh ghi này ta sẽ giới thiệu chúng trong các ví dụ với các lệnh đơn giản là ADD và MOV. 2.1.2 Lệnh chuyển MOV. Nói một cách đơn giản lệnh MOV sao chép dữ liệu từ một vị trí này đến một ví trí khác. Nó có cú pháp như sau MOV Đích nguồn sao chép nguồn vào đích Lệnh này nói CPU chuyển trong thực tế là sao chép toán hạng nguồn vào toán hạng đích. Ví dụ lệnh MOV A R0 sao chép nội dung thanh ghi R0 vào thanh ghi A. Sau khi lênh này đuợc thực hiện thì thanh ghi A sẽ có giá trị giống nhu thanh ghi R0. Lệnh MOV không tác động toán hạng nguồn. Đoạn chuơng trình .