標準控制結(jié)構(gòu)如何應(yīng)用到Assembly

2018-10-27 11:29 更新

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寫的基本的算法。

C寫的基本算法

這是匯編語言版:
實例1
實例2
實例3
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號