Tôi đang làm việc với hội đồng ARM, nơi tôi phải viết một chương trình con mà tôi đang theo quy ước gọi ARM (điều này sẽ phải được tích hợp với khác) để truyền các tham số và giá trị trả lại. Bây giờ ở đây là một cái gì đó tôi không chắc chắn nói chung khi làm việc với lắp ráp.Truyền tham số và giá trị trả về cho một chương trình con trong assembly
Vì vậy, từ quy ước nếu tôi hiểu rõ các đối số được truyền theo thứ tự bắt đầu từ thanh ghi r0 - r4 và sau đó cho các ngăn đối số khác được sử dụng. Giá trị trả về được chuyển tới r0.
Bây giờ, đây là những gì tôi đang bối rối. Nếu tôi phải tiết kiệm bối cảnh của r0 và bật nó ra sau đó thì không có cách nào để trả lại kết quả, cách duy nhất nó có thể được thực hiện là bằng cách làm hỏng đối số đầu tiên. Có cách giải quyết nào đó không? Cảm ơn bạn trước!
Vì vậy, tôi đoán đó là trách nhiệm của người gọi để lưu ngữ cảnh của r0 trước khi nó gọi hàm. – as3rdaccount
Từ liên kết bạn đã đăng: * "r0 đến r3: được sử dụng để giữ các giá trị đối số được chuyển đến một chương trình con và cũng giữ kết quả được trả về từ chương trình con" *. – m0skit0