欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1876|回復: 5
打印 上一主題 下一主題
收起左側

請教關于KEIL C251編譯器關于USING 0的使用語法問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:227818 發表于 2024-4-13 13:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一個單片機程序,關于R0到R7寄存器的使用,以前是通過設置RS0,RS1來區分,比如在一個中斷中 執行 CLR RS0;CLR RS1,使用0區,在另一個中斷中執行SETB RS0;CLR RS1,使用1區,在主程序中執行 SETB RS0,SETB RS1使用3區。現在我想在程序使用中對R0到R7的寄存器壓棧處理,就是 PUSH AR0....PUSH AR7,發現在程序的開頭中不使用  USING 語句定義寄存器區域的使用,編譯就會出問題,出現下面的錯誤  : error A53: MISSING 'USING' INFORMATION,我是不是要把程序中所有的 CLR RS0;CLR RS1,替換成 USING 0,SETB RS0;CLR RS1 替換成 USING 1,SETB RS0,SETB RS1 替換成 USING 3?假設 我寫成一下程序會怎樣?

CLR  RS0;
CLR  RS1;
USING 3

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

謝謝您的回復,我再揣摩下。
回復

使用道具 舉報

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

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

使用道具 舉報

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

當然可以,using的有效期在寫using這一行的下一行開始,直到遇到另一個using結束。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表