Tôi hiểu rằng tôi đã không làm cho bản thân mình rõ ràng. Tôi nghi ngờ, tôi nghĩ rằng, có thể tóm tắt trong điều này:Trình biên dịch C++ biên dịch các tên biến như thế nào?
Trong tệp thi hành (mã máy) làm cách nào để "biến" được biểu thị? Chúng có phải là địa chỉ bộ nhớ tĩnh không? Trình biên dịch có cung cấp cho mỗi người một "tên" cụ thể (hoặc chỉ giữ một tên mà bạn đã cung cấp cho họ) không?
Thể hiện trong mã:
int x=5;
//Bunch of code
cin>>y;
cout<<x+1;
Làm thế nào để chương trình trong mỗi máy biết địa chỉ nào sẽ giữ giá trị 5, để giữ giá trị inputed, để thêm 1 vào giá trị nó bây giờ nắm giữ và cuối cùng in cùng giá trị đó.
--João
CẢM ƠN QUÝ VỊ. Bạn đã trải qua những rắc rối khi giải thích mã asm bên trong cho tôi. Bạn không chỉ trả lời câu hỏi của tôi mà còn thỏa mãn sự tò mò của tôi và khiến tôi muốn học lắp ráp. Kudos cho bạn Sr. –
Chỉ cần một điều nữa nếu nó không phải là quá nhiều để yêu cầu. Ví dụ: các số bù đó có nghĩa là:% ebp -12 = ít hơn 12 địa chỉ tính từ số cơ bản không? –
@ JoãoSilva nếu% ebp là 0xffffcfe8, địa chỉ của c sẽ là 0xffffcfe8 - 4 = 0xffffcfdc, nếu đó là những gì bạn đang yêu cầu. – kharvd