迴圈語句的實現機制

2021-08-25 08:01:10 字數 550 閱讀 9428

(1)

int main() return 0; }

int i=1; 003813be mov dword ptr [i],1 while (i<10) 003813c5 cmp dword ptr [i],0ah ;比較i和10 003813c9 jge main+56h (3813f6h) ;i>=10則跳轉,跳出迴圈 003813f4 jmp main+25h (3813c5h) ;無條件跳轉到比較處,繼續迴圈 return 0; 003813f6 xor eax,eax

do…while

實現機制類似。但是是先輸出,然後比較

(2)for

語句實現機制

前面筆記中有

(3)continue

和break

實現機制

在彙編中都用jmp

無條件跳轉指令實現

區別:continue

是跳轉到修改迴圈條件的地方

break

是跳轉到迴圈外面,即跳過迴圈,在極端的情況下break

還會忽略後面的語句和刪除迴圈結構的某些跳轉指令。

Switch語句的實現機制

switch 的底層實現機制根據 switch 需要判斷的表示式的複雜性和不同編譯器有所不同。一般情況下,switch 有三種實現機制,分別是直接判斷 跳轉表和樹型結構。編譯器根據需要判斷表示式的複雜性並採用相應的的實現方式。下面分別研究這三種 switch機制 1 直接判斷 當程式中不存在 bre...

foreach語句實現迴圈

迴圈語句是程式設計的基本語句,在c 中除了沿用c語言的迴圈語句外,還提供了foreach語句來實現迴圈。那麼我要說的就是,在迴圈操作中盡量使用foreach語句來實現。為了來更好地說明為什麼要提倡使用foreach,用如下三種不同方式來編寫迴圈語句。int narray new int 100 us...

迴圈語句python Python 迴圈語句

sonnetoab勝於藍 優秀個人部落格 gra nnet qq.comoab勝於藍 優秀個人部落格oab勝於藍 優秀個人部落格 八皇后問題 迴圈遞迴法 oab勝於藍 優秀個人部落格 queen problem with recurison board size 8 def under attack...