If語句
下面的偽碼:
if ( 條件)
then block ;
else
else block ;
可以像這樣被應(yīng)用:
1 ; 設(shè)置FLAGS的代碼
2 jxx else_block ; 選擇xx,如果條件為假,則分支
3 ; then模塊的代碼
4 jmp endif
5 else_block:
6 ; else模塊的代碼
7 endif:
如果沒有else語句的話,那么else block分支可以用endif分支取代。
1 ; 設(shè)置FLAGS的代碼
2 jxx endif ; 選擇xx,如果條件為假,則分支
3 ; then模塊的代碼
4 endif:
While循環(huán)
while循環(huán)是一個頂端測試循環(huán):
while( 條件) {
循環(huán)體;
}
這個可以翻譯成:
1 while:
2 ; 基于條件的設(shè)置FLAGS的代碼
3 jxx endwhile ; 選擇xx,如果條件為假,則分支
4 ; 循環(huán)體
5 jmp while
6 endwhile:
Do while循環(huán)
do while循環(huán)是一個末端測試循環(huán):
do {
循環(huán)體;
} while( 條件);
這個可以翻譯成:
1 do:
2 ; 循環(huán)體
3 ; 基于條件的設(shè)置FLAGS的代碼
4 jxx do ; 選擇xx,如果條件為假,則分支|
例子:查找素數(shù)
這一小節(jié)是一個查找素數(shù)的程序。根據(jù)回憶,素數(shù)是一個只能被1和它本身整除的數(shù)。沒有公式來做這件事情。這個程序使用的基本方法是在一個給定的范圍內(nèi)查找所有奇數(shù)的因子。如果一個奇數(shù)沒有找到一個因子,那么它就是一個素數(shù)。圖2.3 展示了用C寫的基本的算法。
這是匯編語言版:
更多建議: