從匯編程序中訪問C程序變量
出處:peach1000 發(fā)布于:2008-12-22 16:48:40
在C程序中聲明的全局變量可以被匯編程序通過地址間接訪問,具體訪問方法如下。
·使用IMPORT偽指令聲明該全局變量。
·使用LDR指令讀取該全局變量的內(nèi)存地址,通常該全局變量的內(nèi)存地址值存放在
程序的數(shù)據(jù)緩沖池中。
·根據(jù)該數(shù)據(jù)的類型,使用相應(yīng)的LDR指令讀取該全局變量的值;使用相應(yīng)的STR
指令修改該全局變量的值。
各數(shù)據(jù)類型及其對應(yīng)的LDR/STR指令如下。
·對于無符號的char類型的變量通過指令LDRB/STRB來讀寫。
·對于無符號的short類型的變量通過指令LDRH/STRH來讀寫。
·對于int類型的變量通過指令LDR/STR來讀寫。
·對于有符號的char類型的變量通過指令LDRSB來讀取。
·對于有符號的char類型的變量通過指令STRB來寫入。
·對于有符號的short類型的變量通過指令LDRH來讀取。
·對于有符號的short類型的變量通過指令STRH來寫入。
·對于小于8個字的結(jié)構(gòu)型變量,可以通過一條LDM/STM指令來讀/寫整個變量。
·對于結(jié)構(gòu)型變量的數(shù)據(jù)成員,可以使用相應(yīng)的LDR/STR指令來訪問,這時必須知道該數(shù)據(jù)成員相對于結(jié)構(gòu)型變量開始地址的偏移量。
下面是一個在匯編程序中訪問C程序全局變量的例子。程序中變量globv1是在C程序中聲明的全局變量。在匯編程序中首先用IMPORT偽指令聲明該變量;再將其內(nèi)存地址讀入到寄存器RI中;然后將其值讀入到寄存器R0中;修改后再將寄存器R0的值賦予變量globv1。本例中的程序如下。

版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- EDA技術(shù)工具鏈與全流程設(shè)計(jì)運(yùn)維指南2026/1/5 10:28:51
- PLC程序現(xiàn)場疑難問題排查與深度優(yōu)化指南2025/12/24 14:36:36
- PLC程序現(xiàn)場調(diào)試與優(yōu)化實(shí)操指南2025/12/24 14:29:57
- 工業(yè)PLC模擬量信號采集:調(diào)理技術(shù)與抗干擾工程方案2025/12/15 14:39:08
- PLC設(shè)備如何選型2025/9/5 17:15:14
- PCB埋盲孔設(shè)計(jì)與工藝適配核心技術(shù)規(guī)范
- 如何提高M(jìn)OSFET在惡劣環(huán)境下的可靠性?
- 繼電器觸點(diǎn)壽命及可靠性分析
- 可重構(gòu)濾波器技術(shù):滿足多標(biāo)準(zhǔn)通信系統(tǒng)的靈活需求
- 磁集成技術(shù)在小型化電源設(shè)計(jì)中的應(yīng)用
- 微帶線阻抗匹配設(shè)計(jì)與實(shí)操調(diào)試技巧
- 從S參數(shù)到實(shí)際元件:微帶線濾波器的設(shè)計(jì)與仿真流程
- IP67/IP68連接器設(shè)計(jì)解析
- 電源管理IC失效的常見原因
- MOSFET體二極管特性分析









