從C語言到彙編(四)while語句
來自專欄從C語言到彙編
while語句可以實現不斷執行指令。
int fun(void){ int i=1; int sum=0; while(i<=100) { sum=sum+i; i++; }}
計算1到100的和。
movl $1, -8(%ebp)movl $0, -4(%ebp)jmp .L2.L3:movl -8(%ebp), %eaxaddl %eax, -4(%ebp)addl $1, -8(%ebp).L2:cmpl $100, -8(%ebp)jle .L3nop
do-while語句
int fun(void){ int i=1; int sum=0; do{ sum=sum+i; i++; }while(i<=100)}
movl $1, -8(%ebp) movl $0, -4(%ebp).L2: movl -8(%ebp), %eax addl %eax, -4(%ebp) addl $1, -8(%ebp) cmpl $100, -8(%ebp) jle .L2 nop
嵌套循環
int fun(void){ int i; int j; i=0; while(i<5) { j=0; while(j<4) { putchar(*); j++; } putchar(
); i++; } }
movl $0, -16(%ebp) jmp .L2.L5: movl $0, -12(%ebp) jmp .L3.L4: subl $12, %esp pushl $42 call putchar addl $16, %esp addl $1, -12(%ebp).L3: cmpl $3, -12(%ebp) jle .L4 subl $12, %esp pushl $10 call putchar addl $16, %esp addl $1, -16(%ebp).L2: cmpl $4, -16(%ebp) jle .L5 nop
推薦閱讀:
※一個計科小白的每日編程打卡18.07.25
※使用樹莓派從"零"搭建WordPress博客
※Lucene解析 - IndexWriter
※?數控編程之刀具點位全套知識,必備手冊!
※學編程為什麼這麼難?是不是想學編程但又害怕學不會?