人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

Turbo C下的寄存器變量

Turbo C下的寄存器變量

更新時間:2022-09-10 文章作者:未知 信息來源:網絡 閱讀次數:

    在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兩個寄存器。
    在一個程序中寄存器變量只能聲明兩個,肯定對于我們來說是少了點,但是我們也要合理的運用它。如果把它用在程序中規模比較大的循環中,效果也是可佳的(人能感覺到的話,可能不現實吧?我沒有用過太大規模的循環)。總之,為了自己程序的速度,合理的利用這兩個寶貴的寄存器變量吧!  

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 龙里县| 宝丰县| 罗田县| 布尔津县| 修文县| 临颍县| 拜城县| 普兰店市| 甘谷县| 北京市| 天津市| 四会市| 南溪县| 呼玛县| 丽江市| 中宁县| 威信县| 区。| 崇义县| 高邮市| 静安区| 陇川县| 长顺县| 麦盖提县| 安丘市| 随州市| 庄浪县| 壤塘县| 宁河县| 张家口市| 文化| 神池县| 平谷区| 全南县| 富宁县| 龙井市| 南部县| 饶平县| 木里| 松溪县| 出国|