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