[問題] Keil A51在BIT space取得特定的連續位址?
各位版友好!
最近嘗試用Keil A51來編譯以前的組語程式,在 bit address(0x20 ~ 0x2F)遇到困擾。
也許是因為語法不熟悉,想請版友指點迷津。
由於我想要在bit address裡面配置一個完整的byte(8 bits),便於運算。
但不指定特定位址,因為有多個library,如果事先指定變數位址,很容易發生overlap。
剛開始宣告如下:
BIT_SEG SEGMENT DATA BITADDRESSABLE
RSEG BITSEG
Keyboard: DS 1
UP BIT Keyboard.7
DOWN BIT Keyboard.6
Keyboard的位址由linker決定,但卻被宣告在 R0~R7那塊(0x00 ~ 0x1F)。
後來改用SEGMENT BIT或BSEG的方式,卻又無法讓這8 bits剛好擺在同一個byte。
目前只試出將位址寫死,但後續呼叫Library時,位址可能重複的問題還是會碰上。
請版友幫忙提供意見,謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.162.7.163
→
09/06 21:21, , 1F
09/06 21:21, 1F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章