PDA

View Full Version : Cho mình hỏi về các lệnh rẽ nhành trong Pic??/Ai biết giúp mình với


hovuong21
03-10-2008, 10:45 AM
Khi học về câu lệnh mình có chỗ thắc mắc nhỏ như:
- Lệnh: JC rel có tác dụng nêy cờ CY =1 thì nó nhảy tới địa chỉ đã xác định còn không thì nó bỏ qua.Địa chỉ đích được tính bằng các cộng thêm độ lệc có dấu ( tương đối ) trong Byte thứ 2 của lênh với nội dung trong PC (sau khi đựoc tăng bởi 2)
Mình không hiểu " Địa chỉ đích" là như thê nào, no có trác dụng gì vi một số bài ông thầy lấy VD trên lớp cứ gặp lệnh nay nếu thỏa mãn điều kiện là nhảy tới nhãn đặt ra trong câu lệnh, mình cũng đã tìm hiểu một số VD thì cũng chỉ cần thỏa mãn điều kiện là nhảy tới địa chỉ mà mình đã đặt nhãn, không hiểu " địa chỉ đich" là gì. Đặc biệt là 2 lênh LCALL và lệnh ACALL, mình chỉ biết là nó gọi vô diều kiện chương trình con chứ cũng không hiểu "địa chỉ đích" là gì, cà ưng dụng của nó là để làm gì vì mình nghĩ đối với nhưng lập trình đơn giản trên lớp chắc không cần quan tâm

namqn
03-10-2008, 03:44 PM
Khi học về câu lệnh mình có chỗ thắc mắc nhỏ như:
- Lệnh: JC rel có tác dụng nêy cờ CY =1 thì nó nhảy tới địa chỉ đã xác định còn không thì nó bỏ qua.Địa chỉ đích được tính bằng các cộng thêm độ lệc có dấu ( tương đối ) trong Byte thứ 2 của lênh với nội dung trong PC (sau khi đựoc tăng bởi 2)
Mình không hiểu " Địa chỉ đích" là như thê nào, no có trác dụng gì vi một số bài ông thầy lấy VD trên lớp cứ gặp lệnh nay nếu thỏa mãn điều kiện là nhảy tới nhãn đặt ra trong câu lệnh, mình cũng đã tìm hiểu một số VD thì cũng chỉ cần thỏa mãn điều kiện là nhảy tới địa chỉ mà mình đã đặt nhãn, không hiểu " địa chỉ đich" là gì. Đặc biệt là 2 lênh LCALL và lệnh ACALL, mình chỉ biết là nó gọi vô diều kiện chương trình con chứ cũng không hiểu "địa chỉ đích" là gì, cà ưng dụng của nó là để làm gì vì mình nghĩ đối với nhưng lập trình đơn giản trên lớp chắc không cần quan tâm
Bạn đang hỏi về các lệnh của 8051, còn diễn đàn này chủ yếu dành cho PIC. Bạn nên hỏi box dành cho 8051 bên www.dientuvietnam.net thì sẽ nhận được sự giúp đỡ tốt hơn.

Thân,

hovuong21
04-10-2008, 12:05 AM
Tưởng hai cái này như nhau, Gà quá, mà nếu trưởng lão PIC Bang biết thì trả lời giùm minh tý

namqn
04-10-2008, 12:20 AM
Lệnh rẽ nhánh sẽ khiến việc thực thi chương trình được tiếp tục ở một địa chỉ khác chứ không phải ở địa chỉ của lệnh kế tiếp nằm sau lệnh rẽ nhánh đó. Địa chỉ mới mà việc thực thi chương trình được tiếp tục là đích của lệnh rẽ nhánh, nếu điều kiện rẽ nhánh (nếu có) được thỏa mãn. Địa chỉ đó có thể được gọi là "địa chỉ đích".

Các lệnh LCALL và ACALL là các lệnh rẽ nhánh có lưu địa chỉ trở về vào ngăn xếp (stack), hay nói cách khác là các lệnh gọi chương trình con (các đoạn chương trình có một chức năng cụ thể nào đó, có thể được dùng nhiều lần trong chương trình). Để cho dòng điều khiển của chương trình được hiện thực đúng, cần có ít nhất một lệnh trở về từ chương trình con RET trong đoạn mã lệnh của chương trình con.

Thân,