<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Calling-Conventions on P01NT</title><link>https://outofsrvc.github.io/ar/tags/calling-conventions/</link><description>Recent content in Calling-Conventions on P01NT</description><generator>Hugo</generator><language>ar</language><lastBuildDate>Thu, 13 Aug 2026 10:00:00 +0300</lastBuildDate><atom:link href="https://outofsrvc.github.io/ar/tags/calling-conventions/index.xml" rel="self" type="application/rss+xml"/><item><title>الذاكرة الظاهرية: Stack مقابل Heap</title><link>https://outofsrvc.github.io/ar/cworkshop/virtual-memory-stack-vs-heap/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/cworkshop/virtual-memory-stack-vs-heap/</guid><description>&lt;p>بسم الله الرحمن الرحيم.&lt;/p>
&lt;p>في هذا المقال سنتحدث عن تصميم الذاكرة الخاص بالـ Stack والـ Heap، ونوضح نقاط الاختلاف بينهما.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>ملاحظة&lt;/strong>: هذا المقال لا يغطي كل شيء حرفياً، لكنه سيوصلنا لفهم كامل عن الأمور التي سنتحدث فيها.&lt;/p>&lt;/blockquote>
&lt;h2 id="تخطيط-الذاكرة-memory-layout">تخطيط الذاكرة (Memory Layout)&lt;/h2>
&lt;p>كما ذكرنا في مقال المؤشرات، ذاكرة البرامج في الأنظمة الحديثة x86/x64 تنقسم إلى 5 أقسام رئيسية (والبعض يقول 4 بدمج Data مع BSS):&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Text Segment&lt;/strong> — التعليمات التنفيذية (للقراءة فقط).&lt;/li>
&lt;li>&lt;strong>Data Segment&lt;/strong> — المتغيرات العامة المهيأة.&lt;/li>
&lt;li>&lt;strong>BSS Segment&lt;/strong> — المتغيرات العامة غير المهيأة.&lt;/li>
&lt;li>&lt;strong>Heap&lt;/strong> — التخصيص الديناميكي.&lt;/li>
&lt;li>&lt;strong>Stack&lt;/strong> — المتغيرات المحلية وإطارات الدوال.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">+-----------------+ عناوين عالية
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| Stack | ينمو للأسفل
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| | |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| v |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">+-----------------+
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| (فجوة) |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">+-----------------+
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| ^ |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| | |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| Heap | ينمو للأعلى
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">+-----------------+
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| BSS |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| Data |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| Text |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">+-----------------+ عناوين منخفضة
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>نتعامل هنا مع الـ &lt;strong>User Space&lt;/strong> فقط — الـ Kernel Space موضوع آخر.&lt;/p></description></item></channel></rss>