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