<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ret on P01NT</title><link>https://outofsrvc.github.io/ar/tags/ret/</link><description>Recent content in Ret on P01NT</description><generator>Hugo</generator><language>ar</language><lastBuildDate>Tue, 25 Aug 2026 20:10:00 +0300</lastBuildDate><atom:link href="https://outofsrvc.github.io/ar/tags/ret/index.xml" rel="self" type="application/rss+xml"/><item><title>التحكم الأساسي في التدفق (Basic Flow Control)</title><link>https://outofsrvc.github.io/ar/asm/basic-flow-control/</link><pubDate>Tue, 25 Aug 2026 20:10:00 +0300</pubDate><guid>https://outofsrvc.github.io/ar/asm/basic-flow-control/</guid><description>&lt;p>بسم الله الرحمن الرحيم&lt;/p>
&lt;p>سنناقش في هذا المقال التحكم في تدفق البرامج&lt;/p>
&lt;hr>
&lt;h2 id="1-تعليمة-jmp">1. تعليمة JMP&lt;/h2>
&lt;p>تنفّذ تعليمة &lt;code>JMP&lt;/code> قفزة &lt;strong>غير مشروطة&lt;/strong> (Unconditional Jump). فهي تعادل وظيفيًا الكتابة فوق مؤشر التعليمات (&lt;code>EIP&lt;/code>) بالعنوان المحدد في المعامل.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-asm" data-lang="asm">&lt;span class="line">&lt;span class="cl">&lt;span class="nl">start:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">mov&lt;/span> &lt;span class="no">eax&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nl">top:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">inc&lt;/span> &lt;span class="no">eax&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">jmp&lt;/span> &lt;span class="no">top&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>القائمة 3.1: استخدام تعليمة JMP لتكوين حلقة لا نهائية بسيطة&lt;/em>&lt;/p>
&lt;p>توضح القائمة 3.1 حلقة لا نهائية بسيطة:&lt;/p>
&lt;ol>
&lt;li>تُهيّئ &lt;code>EAX&lt;/code> إلى القيمة 0.&lt;/li>
&lt;li>تدخل الحلقة وتزيد &lt;code>EAX&lt;/code> بمقدار 1.&lt;/li>
&lt;li>تقفز عائدةً إلى عنوان التسمية &lt;code>top&lt;/code>.&lt;/li>
&lt;/ol>
&lt;p>ولأنه لا يوجد شرط للخروج، تتكرر الحلقة إلى ما لا نهاية حتى يتم إنهاء البرنامج.&lt;/p></description></item></channel></rss>