Tôi không biết, nhưng bạn có thể dễ dàng tạo ra một cách giải quyết như thế này:
int *var = (int*)0x40001000;
*var = 4;
Nó không phải chính xác điều tương tự, nhưng trong hầu hết các tình huống một người thay thế hoàn hảo. Nó sẽ làm việc với bất kỳ trình biên dịch, không chỉ GCC.
Nếu bạn sử dụng GCC, tôi giả sử bạn cũng sử dụng GNU ld (mặc dù nó không chắc chắn, tất nhiên) và ld có hỗ trợ đặt biến wherever you want them.
Tôi tưởng tượng việc cho phép trình liên kết thực hiện công việc đó khá phổ biến.
Lấy cảm hứng từ câu trả lời của @rib, tôi sẽ thêm rằng nếu địa chỉ tuyệt đối dành cho một số thanh ghi kiểm soát, tôi sẽ thêm volatile
vào định nghĩa con trỏ. Nếu nó chỉ là RAM, nó không quan trọng.
Nguồn
2010-11-01 09:40:33
Tôi đã viết một [bài viết] (http://a3f.at/articles/register-syntax-sugar), nơi tôi liệt kê các phương tiện để làm như vậy. Có thể hữu ích cho một số người. – a3f