這有點古怪,但我今天正在與GNU彙編人員討論(我希望能夠至少讀取語法),並試圖獲得這個小小的人爲的例子我的工作。即我只想從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`是完全等效於`MOVL $ 0,%eax`,並且需要3個字節以下。只是說。 :) – 2012-03-10 00:38:24