從C語言到彙編(四)while語句

從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
?數控編程之刀具點位全套知識,必備手冊!
學編程為什麼這麼難?是不是想學編程但又害怕學不會?

TAG:彙編語言 | 編程語言 | 編程 |