關於分支結構與迴圈結構的思考

2021-10-12 16:08:34 字數 1236 閱讀 1478

c語言中有分支結構和迴圈結構,他們是用機器指令完成的。那麼他們是怎麼實現的呢?

機器指令中有cmp指令,比較兩個數的大小,接著用jxx指令跳轉。

c語言中有分支結構和迴圈結構,他們是用機器指令完成的。那麼他們是怎麼實現的呢?

機器指令中有cmp指令,比較兩個數的大小,接著用jxx指令跳轉。

je 相等則跳轉

jne 不相等則跳轉

jg 有符號數大於則跳轉

jge 有符號數大於等於則跳轉

jl 有符號數小於則跳轉

jle 有符號數小於等於則跳轉

ja 無符號數大於則跳轉

jae 無符號數大於等於則跳轉

jb 無符號數小於則跳轉

jbe 無符號數小於等於則跳轉

jmp 無條件跳轉

cmp 和 jxx的組合可以看成if(***)goto 語句的組合。

cmp 和 jxx的組合可以看成if(***)goto 語句的組合。

void fun(void)

}改為goto模式

void fun(void)

改為彙編模式

.section .rodata

.lc0:.string "%d\n"

.section .text

fun:

pushl %ebp

movl %esp,%ebp

pushl %ebx

movl $0,%ebx

jmp .l1

.l2:

pushl %ebx

pushl $.lc0

call printf

addl $8,%esp

addl $1,%ebx

.l1:

cmpl $10,%ebx

jl .l2

popl %ebx

movl %ebp,%esp

popl %ebp

ret

其他語句的組合方式

if語句

void fun(int a)

}///

void fun(int a)

if-else語句

void fun(int a)

else

}///

void fun(int a)

for語句

void fun(int len)

{ int i;

for(i=0;i

Java分支結構與迴圈結構

一 分支結構 1 if語句 if語句將根據條件的真假,判斷if的從屬語句,也就是條件符合才能執行裡面的 格式 if 條件 2 if else結構 if else結構根據乙個布林值的真假來選擇做不同的事情,也就是如果.否則.的意思。格式 if 條件 else 格式 if 條件 else else 4 ...

分支結構和迴圈結構

一 分支結構 當需要在程式進行條件判斷來決定是否執行後面 的場合中,可以使用分支結構。1 if 如果成立則執行下列語句 如果不成立則不執行語句 2 if else ifelse 代表 如果成立則執行語句一 如果不成立則執行語句二 3 if else if else 跟if else 相類似 只不過比...

java中的分支結構,迴圈結構

今天學習重點是分支結構,和迴圈結構 關於分支結構,有四種 if if else else if switch case 其中if 乙個分支,if else兩個分支,else if和switch case 多個分支 關於switch case 有幾個知識點 1 case分支後加break,才會跳出sw...