娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月21日(星期六)

2018年06月21日 | Keil C51對(duì)C語言的關(guān)鍵詞擴(kuò)展之十八:using

發(fā)布者:MysticMoon 來源: eefocus關(guān)鍵字:Keil  C51  using 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

在8051系列單片機(jī)中,內(nèi)部ram的前32個(gè)字節(jié)被分為4組,每組8個(gè)寄存器。每組的8個(gè)寄存器名字都為R0-R7。通過設(shè)置PSW寄存器的兩個(gè)位,可以選擇使用4組寄存器中的哪一組。

寄存器組在處理中斷或者使用實(shí)時(shí)操作系統(tǒng)時(shí)非常有用,可以在進(jìn)入中斷或者切換任務(wù)時(shí)使用不同寄存器組,而不用把8個(gè)寄存器的內(nèi)容保存到堆棧。在退出中斷或返回原任務(wù)時(shí),只需切換回原來的寄存器組即可。

指定一個(gè)函數(shù)使用的寄存器組:


void rb_function (void) using 3
  {
  .
  .
  .
  }

using后跟數(shù)字0-3,不允許使用符號(hào)表達(dá)式指定代替該數(shù)字常量。只有定義函數(shù)時(shí)才可使用using關(guān)鍵詞,在做函數(shù)原型聲明時(shí)不允許使用using關(guān)鍵詞。


using聲明的函數(shù)具有以下特征:

1)函數(shù)入口處,當(dāng)前使用的寄存器組被保存到堆棧;

2)指定的寄存器組被設(shè)置;

3)函數(shù)退出前,原來的寄存器組被恢復(fù);

下面展示了using的用法,請(qǐng)注意生成的匯編程序中函數(shù)入口、出口處的代碼:


C程序:

   1
   2         extern bit alarm;
   3         int alarm_count;
   4         extern void alfunc (bit b0);
   5
   6         void falarm (void) using 3  {
   7   1           alarm_count++;
   8   1           alfunc (alarm = 1);
   9   1         }


生成的匯編程序:
0000 C0D0       PUSH  PSW	/* 函數(shù)入口處,將原來的寄存器組保存到堆棧 */
0002 75D018     MOV   PSW,#018H /* 切換到新的寄存器組 */
0005 0500   R   INC   alarm_count+01H
0007 E500   R   MOV   A,alarm_count+01H
0009 7002       JNZ   ?C0002
000B 0500   R   INC   alarm_count
000D  ?C0002:
000D D3         SETB  C
000E 9200   E   MOV   alarm,C
0010 9200   E   MOV   ?alfunc?BIT,C
0012 120000 E   LCALL alfunc
0015 D0D0       POP   PSW  /* 函數(shù)退出前,切換到原來的寄存器組 */
0017 22         RET

返回值保存在寄存器中的函數(shù)不能使用using。


即使使用相同的寄存器組,使用using的函數(shù)也不能返回bit類型的值。

using通常在中斷服務(wù)函數(shù)定義時(shí)使用,我們可以為不同的中斷服務(wù)函數(shù)指定不同的寄存器組,這樣可以減少堆棧操作,提高程序運(yùn)行效率。


關(guān)鍵字:Keil  C51  using 引用地址:Keil C51對(duì)C語言的關(guān)鍵詞擴(kuò)展之十八:using

上一篇:Keil C51 之LST文件
下一篇:Keil C51對(duì)C語言的關(guān)鍵詞擴(kuò)展之十七: sbit

推薦閱讀

? ? 自 2007 年以來,iPhone 已經(jīng)在世界范圍內(nèi)賣出了超過 10 億部。  我們手中的每部 iPhone,不僅是十項(xiàng)全能的智能手機(jī),也是陀螺儀、攝像頭、觸控屏等各種元器件的集合體。  你可能每天都在用 iPhone 打游戲、看電影,但你可能想不到,手里握著的這部 iPhone,居然還可以用來研究疾病?  當(dāng) iPhone 參與醫(yī)學(xué)研究  Oliver Aalami...
運(yùn)行環(huán)境Windows10STM32CubeMX___Version 5.0.0Keil5(MDK5)___Version 5.15簡介本例程主要講解如何設(shè)置外部中斷,采用中斷的方式按鍵是否按下,在中斷中進(jìn)行打印數(shù)據(jù)。STM32CubeMx基本配置基礎(chǔ)配置過程請(qǐng)參考 STM32CubeMx(Keil5)開發(fā)之路—配置第一個(gè)項(xiàng)目STM32CubeMx 外部中斷配置查看電路圖,如下圖所示K1——K3為外部輸入引腳,連接PE2——PE4,并且...
隨著科技越來越發(fā)達(dá),機(jī)器人也逐漸進(jìn)入人們的生活,給生活帶來很大的便利。 機(jī)器人分為串聯(lián)機(jī)器人、并聯(lián)機(jī)器人和混合機(jī)器人三大類別。其中,并聯(lián)機(jī)器人由一些閉環(huán)運(yùn)動(dòng)鏈組成,有兩種經(jīng)典構(gòu)型:Delta機(jī)器人和Stewart機(jī)器人。 Delta并聯(lián)機(jī)器人在上世紀(jì)90年代才真正引起廣泛注意,具有剛度高、速度快、柔性強(qiáng)、重量輕等優(yōu)點(diǎn)。在食品、醫(yī)藥、等輕工業(yè)中應(yīng)...
6月18日,總投資約120億元建設(shè)的上汽時(shí)代、時(shí)代上汽先進(jìn)動(dòng)力電池產(chǎn)業(yè)化項(xiàng)目(二期) 在溧陽高新區(qū)開工,標(biāo)志著上汽集團(tuán)和寧德時(shí)代在動(dòng)力電池領(lǐng)域的合作上升至一個(gè)新臺(tái)階。 上汽時(shí)代成立于2017年,是上汽集團(tuán)與寧德時(shí)代合資建設(shè)的PACK工廠,雙方分別持股51%和49%,主要從事動(dòng)力電池模塊和系統(tǒng)的開發(fā)、生產(chǎn)及銷售,主要供貨上汽集團(tuán)。 同時(shí),雙方還成立了另一...

史海拾趣

小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 富川| 莒南县| 个旧市| 克拉玛依市| 化德县| 呼图壁县| 嘉禾县| 古蔺县| 江华| 晋城| 延吉市| 巩留县| 任丘市| 双鸭山市| 临漳县| 开鲁县| 山东省| 罗甸县| 石河子市| 张家川| 怀柔区| 牙克石市| 成武县| 桂阳县| 庆云县| 平湖市| 都昌县| 盘山县| 辽宁省| 育儿| 马公市| 林周县| 亚东县| 噶尔县| 鄂州市| 成武县| 满城县| 什邡市| 名山县| 平泉县| 青龙|