六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Turbo C下的寄存器變量

[摘要]在Turbo C下有種變量叫寄存器變量。使用寄存器的好處是可以提高程序的運行速度!因為減少了尋址時間?聪旅娴腃代碼:main() int i,k; register j; for(i=1;i<=100;i++); for(k=1;k<=100;k++); for(j=1;j<=...
    在Turbo C下有種變量叫寄存器變量。使用寄存器的好處是可以提高程序的運行速度!因為減少了尋址時間。
看下面的C代碼:
main()
{
int i,k;
register j;
for(i=1;i<=100;i++);
for(k=1;k<=100;k++);
for(j=1;j<=100;j++);
}
這里j被聲明為寄存器變量。通過tcc -S后看它的部分匯編代碼。
======================================================================================
……  ……
mov di,1
jmp short @5
@4:
@3:
inc di
@5:
cmp di,100
jle @4
@2:
; ?debug L 6
mov word ptr [bp-2],1
jmp short @9
@8:
@7:
inc word ptr [bp-2]
@9:
cmp word ptr [bp-2],100
jle @8
@6:
; ?debug L 7
mov si,1
jmp short @13
@12:
@11:
inc si
@13:
cmp si,100
jle @12
……  ……
======================================================================================
看到了!里面有di和si兩個寄存器。但是只有j被聲明為寄存器變量,為什么會出現兩個呢?這個我沒有找到什么合理的解釋,也可能是由于程序中的變量少(少的范圍是1-3個,如果使用兩個變量,一個為普通變量,一個為寄存器變量,在匯編的代碼下兩個變量均是使用寄存器)。
    在Turbo C中寄存器變量的個數最多只能使用兩個(因為寄存器這個資源是很寶貴的)。但是如果聲明多個寄存器變量的話,在編譯時并不會報錯,但這并不表示可以定義多個寄存器變量。同樣,用tcc -S生成匯編代碼后可以看到最多也就使用了di和si兩個寄存器。
    在一個程序中寄存器變量只能聲明兩個,肯定對于我們來說是少了點,但是我們也要合理的運用它。如果把它用在程序中規模比較大的循環中,效果也是可佳的(人能感覺到的話,可能不現實吧?我沒有用過太大規模的循環)?傊瑸榱俗约撼绦虻乃俣,合理的利用這兩個寶貴的寄存器變量吧!  


主站蜘蛛池模板: 日本欧美一区二区三区视频 | 日本tv欧美tv天堂 | 欧美性aaa| 亚洲综合色网站 | 天堂网在线网站成人午夜网站 | 亚洲精品第一国产综合高清 | 天天射天天操天天 | 日韩深夜福利视频 | 婷婷六月丁香 | 日韩中文欧美 | 色噜噜综合网 | 日本高清在线播放一区二区三区 | 亚洲成人娱乐网 | 色综合久久久高清综合久久久 | 制服丝袜自拍偷拍 | 日韩欧美国产视频 | 青草久久影院 | 台湾中文娱乐综合久久久 | 伊人影院在线播放 | 手机看片日韩欧美 | 欧美在线看欧美高清视频免费 | 一级做a爰片欧美aaaa | 五月在线视频 | 三级精品视频在线播放 | 日本成人高清视频 | 日韩欧美专区 | 又粗又大又长又爽免费视频 | 欧美亚洲另类自拍偷在线拍 | 亚洲一区二区三区免费在线观看 | 青青草原国产在线视频 | 午夜国产高清精品一区免费 | 午夜毛片福利 | 日韩在线视频线视频免费网站 | 羞羞漫画在线阅读页面漫画入口页面弹窗无限 | 日本韩国在线视频 | 宇都宫紫苑日韩专区亚洲 | 中文字幕日韩专区精品系列 | 伊人55| 夜鲁鲁鲁夜夜综合视频欧美 | 午夜夜| 午夜精品久久久久久久第一页 |