लूप निर्देशों का एक ब्लॉक है जिसे एक शर्त पूरी होने तक बार-बार निष्पादित किया जाता है। असेंबली लैंग्वेज लूप्स को लागू करने के लिए JMP इंस्ट्रक्शन का उपयोग करती है। हालाँकि, प्रोसेसर सेट लूप को आसानी से लागू करने के लिए LOOP निर्देश का उपयोग कर सकता है।
असेंबली लैंग्वेज में लूप - सिंटैक्स कार्य और उदाहरण
लूप का उपयोग किसी भी कोड ब्लॉक या निर्देशों के समूह को बार-बार चलाने के लिए किया जाता है।
असेंबली लैंग्वेज में लूप इंस्ट्रक्शन वर्क
LOOP निर्देश की पुनरावृत्ति ECX रजिस्टर में लूप काउंट है। जब लूप निर्देश निष्पादित किया जाता है, ईसीएक्स रजिस्टर कम हो जाता है और लक्ष्य लेबल पर नियंत्रण कूदता है, जब तक ईसीएक्स रजिस्टर का मान 0 नहीं होता है, यानी काउंटर शून्य मान तक पहुंच जाता है।
असेंबली लूप सिंटैक्स
प्रोसेसर निर्देश सेट में पुनरावर्तन को लागू करने के लिए लूप निर्देशों का एक सेट शामिल होता है। लूप को लागू करने के लिए JMP निर्देश का उपयोग किया जा सकता है। जहां, लेबल लक्ष्य लेबल है जो जंप निर्देशों के अनुसार लक्ष्य निर्देश की पहचान करता है।
Syntax LOOP label
For example
MOV CL, 10
L1:
-LOOP-BODY-
DEC CL
JNZ L1
असेंबली लूप उदाहरण
निम्न प्रोग्राम स्क्रीन पर 1 से 8 तक की संख्या को प्रिंट करता है −
section .text
global _start ;must be declared for using gcc
_start: ;tell linker entry point
mov ecx,9
mov eax, '1'
l1:
mov [num], eax
mov eax, 4
mov ebx, 1
push ecx
mov ecx, num
mov edx, 1
int 0x80
mov eax, [num]
sub eax, '0'
inc eax
add eax, '0'
pop ecx
loop l1
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .bss
num resb 1
जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्न परिणाम उत्पन्न करता है −
12345678: