این کاری نیست که پردازنده انجام بده. بلکه در پیادهسازی زبان باید توسط دستورات ماشین شبیهسازی بشه. وقتی که داریم عمل زیر و انجام میدیم
x = y + z;
که هر سه متغیر ۶۴ بیتی هستند، میشه سربار تولید شده در مرحلهی جمع ۴ بایت سمت راست x
و y
را مستقیماً در ۴ بایت سمت چپ z
قرار داد. بعد از اون جمع ۴ بایت سمت چپ x
و y
رو با استفاده از اون ۴ بایت ذخیره شده انجام میدیم.
مشکل اینجاست که در زبان اسمبلی و زبان ماشین عمل جمع به صورت ADD EAX, EBX
نوشته میشه که مقدار کنونی ثبات رو با یه مقدار که از حافظه خونده جمع میکنه نه این که در یه گام دو مقدار از حافظه بگیره. مثلاً برای دو عدد ۳۲ بیتی
int x = y + z;
این شبهکدی است که نشون میده اسمبلی این جمع چطوری هست
MOV AX, &y
ADD AX, &z
MOV &x, AX
بنابراین به صورت عملی این کار که سربار جمع چهار بایت اول رو در خود متغیر حاصل ذخیره کنیم ناممکنه. برای این کار میشه از یه ثبات دیگه یا از یه مکان موقت در حافظه استفاده کرد.
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)