找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1468|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)教關(guān)于KEIL C251編譯器關(guān)于USING 0的使用語(yǔ)法問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:227818 發(fā)表于 2024-4-13 13:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
一個(gè)單片機(jī)程序,關(guān)于R0到R7寄存器的使用,以前是通過(guò)設(shè)置RS0,RS1來(lái)區(qū)分,比如在一個(gè)中斷中 執(zhí)行 CLR RS0;CLR RS1,使用0區(qū),在另一個(gè)中斷中執(zhí)行SETB RS0;CLR RS1,使用1區(qū),在主程序中執(zhí)行 SETB RS0,SETB RS1使用3區(qū)。現(xiàn)在我想在程序使用中對(duì)R0到R7的寄存器壓棧處理,就是 PUSH AR0....PUSH AR7,發(fā)現(xiàn)在程序的開(kāi)頭中不使用  USING 語(yǔ)句定義寄存器區(qū)域的使用,編譯就會(huì)出問(wèn)題,出現(xiàn)下面的錯(cuò)誤  : error A53: MISSING 'USING' INFORMATION,我是不是要把程序中所有的 CLR RS0;CLR RS1,替換成 USING 0,SETB RS0;CLR RS1 替換成 USING 1,SETB RS0,SETB RS1 替換成 USING 3?假設(shè) 我寫(xiě)成一下程序會(huì)怎樣?

CLR  RS0;
CLR  RS1;
USING 3

就是關(guān)于使用using的機(jī)理是什么,謝謝大家。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1088185 發(fā)表于 2024-4-13 19:23 | 只看該作者
using 3 它不是CPU指令,所以不會(huì)翻譯成任何CPU指令, 它只是告訴編譯器這個(gè)寄存器組已用, 不要拿來(lái)放變量而已, 要轉(zhuǎn)到Bank 3 就 ORL  PSW,#0x18
回復(fù)

使用道具 舉報(bào)

板凳
ID:883242 發(fā)表于 2024-4-13 21:12 | 只看該作者
using就兩個(gè)用途,一是AR0這樣的別名,不寫(xiě)using匯編器不知道AR0到底在哪里。另一個(gè)用途是寫(xiě)relocatable代碼的時(shí)候,using表示這個(gè)地方已經(jīng)被使用了,鏈接的時(shí)候會(huì)避免在這里分配變量地址。
回復(fù)

使用道具 舉報(bào)

地板
ID:227818 發(fā)表于 2024-4-15 08:06 | 只看該作者
1600277881 發(fā)表于 2024-4-13 19:23
using 3 它不是CPU指令,所以不會(huì)翻譯成任何CPU指令, 它只是告訴編譯器這個(gè)寄存器組已用, 不要拿來(lái)放變量 ...

謝謝您的回復(fù),我再揣摩下。
回復(fù)

使用道具 舉報(bào)

5#
ID:227818 發(fā)表于 2024-4-15 08:07 | 只看該作者
Hephaestus 發(fā)表于 2024-4-13 21:12
using就兩個(gè)用途,一是AR0這樣的別名,不寫(xiě)using匯編器不知道AR0到底在哪里。另一個(gè)用途是寫(xiě)relocatable代 ...

謝謝您的回復(fù),using可以在程序中多次使用嗎?
回復(fù)

使用道具 舉報(bào)

6#
ID:883242 發(fā)表于 2024-4-15 11:51 | 只看該作者
newlined 發(fā)表于 2024-4-15 08:07
謝謝您的回復(fù),using可以在程序中多次使用嗎?

當(dāng)然可以,using的有效期在寫(xiě)using這一行的下一行開(kāi)始,直到遇到另一個(gè)using結(jié)束。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表