2014-03-04 45 views
0

這是我在書中遇到的一個RISC代碼。代碼是將10與5相乘。RISC代碼循環終止

Mov ax,0 
Mov bx,10 
Mov cx,5 
begin : Add ax,bx 
     loop begin 

此代碼所用的週期總數爲13個週期。我不明白​​循環如何終止。我們沒有爲此設置任何條件。任何人都可以請解釋它是如何解釋的。

+0

_「這是一個RISC代碼我碰到」 _你確定嗎?它看起來很像x86彙編。請參閱[Intel軟件開發人員手冊](http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html)的第2卷,瞭解有關「loop」作品。 – Michael

回答

1

最有可能的想法是,loop指令將遞減cx,並且如果cx非零,則只返回到begin。看起來這個假設的RISC是在x86上建模的,這非常有趣,因爲x86不僅是CISC,而且是積極的。

0

如前所述,代碼看起來像是x86彙編器,而不是RISC指令集。在x86中,loop指令遞減CX,如果值不爲零,則指令分支。如果你熟悉C語言它看起來有些像這樣:

int ax = 0; 
int bx = 10; 
int cx = 5; 

do 
{ 
    ax += bx; 
}while (--cx !=0);