यह थोड़ी सी अजीब बात है, लेकिन मैं आज जीएनयू असेंबलर के साथ घूम रहा था (मैं कम से कम वाक्यविन्यास पढ़ने में सक्षम होना चाहता हूं), और इस छोटे से विकसित उदाहरण को प्राप्त करने की कोशिश कर रहा था काम करने के लिए मेरा। अर्थात् मैं बस 0 से 100 तक जाना चाहता हूं, हर समय प्रिंटिंग नंबर। तो कुछ मिनट बाद मैं इस के साथ आते हैं:असेंबली भाषा में 0 से 100 तक बढ़ाना
# count.s: print the numbers from 0 to 100.
.text
string: .asciz "%d\n"
.globl _main
_main:
movl $0, %eax # The starting point/current value.
movl $100, %ebx # The ending point.
_loop:
# Display the current value.
pushl %eax
pushl $string
call _printf
addl $8, %esp
# Check against the ending value.
cmpl %eax, %ebx
je _end
# Increment the current value.
incl %eax
jmp _loop
_end:
सभी मैं इस से प्राप्त 3 से अधिक मुद्रित और फिर से है। जैसे मैंने कहा, बस थोड़ा सा उदाहरण दिया गया है, इसलिए इसके बारे में ज्यादा चिंता न करें, यह जीवन या मृत्यु की समस्या नहीं है।
(स्वरूपण थोड़ा गड़बड़ है, लेकिन कुछ भी प्रमुख नहीं है)।
'xorl% eax,% eax' पूरी तरह से' $ 0,% eax' movl के बराबर है, और 3 बाइट्स कम समय लगता है। बस केह रहा हू। :) –