看板 ASM 關於我們 聯絡資訊
※ 引述《icetofux ()》之銘言: : 我在程式的開頭,利用假指令(虛指令)定義SP旗標位址為081H,如下: : SP EQU 081H : 接著我把Led接在I/O P0.1上,P0.1的映射位址為081H,為了日後程式方便閱讀,我也用 : 假指令(虛指令)定義P0.1為Led1,如下: : Led1 EQU 081H : 這兩個不同名稱的東西,全都指向了081H,請問程式怎麼知道我想改的究竟是SP還是 : P0.1呢? : 書上有提到位元定址映射的觀念,但說明實在不是很清楚,不太了解它的意思,所以想請 : 教一下各位。 無法分辨,如果你把SP定義為081H,然後LED1也定義為081H,然後都是BIT操作的話 他們就會操作到同一個位元硬體去。 但是,如果你SP用來操作位元組。那他的意義就不同。不過話說回來,SP是保留字 ,你這樣定義可能會有其他問題。 另外,用EQU定義東西是標準ASM,BIT是KEIL自己發明的擴充定義。請不要把某公司擴 展的私用定義說得理所當然,因為不是每個人都花得起錢。接著也請不要理所當然的 把不尊重著作權的事當作值得鼓吹的事。 -- 劍兮,劍兮,食無魚,行無車,無以家養,不如歸去不如歸去~~ ▁▁ -= A23203 =- ▕武羅▏ BM4GRM Harlock WolfLord ▕夫得▏  ̄ ̄ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.203.33
waynecone:是說我嗎?!= ="sorry我只不過是下意識的反應!! 09/29 01:06
waynecone:而我會說用bit是因為我用的組意軟體是asem這套免費的組 09/29 01:12
waynecone:器!他剛好也是用bit來定義位元!所以我才會這樣回答!並沒 09/29 01:13
waynecone:有其他的意思!當然也不鼓吹盜版之類的!XDD 09/29 01:14
WolfLord:抱歉,最近老碰到一堆理所當然跟人家討KEIL序號的白目 09/29 01:31
WolfLord:看到這種把專屬定義當理所當然的說法有點反應過度了m=.=m 09/29 01:32
stool100:BIT是必然需要的定義.因為MCU有位原定址功能 09/30 21:12
waynecone:甚麼叫做必然需要?????不懂這句話= =" 09/30 22:28
ruemann:大概是說一定會支援吧。不過不是只有bit這種定義方式就是 09/30 23:51
proach:其實 Keil C51有免費限制版可以合法download :P 10/01 00:27
WolfLord:BIT並不是一個必須的定義,但是他是一個方便的定義。可以 10/01 00:51
WolfLord:預防笨蛋把BIT ADDRESS拿去BYTE用或反過來把BYTE拿去BIT 10/01 00:52
WolfLord:用,但是實際上BIT只是編譯器的一個防呆符號。事實上在大 10/01 00:52
WolfLord:多數的原生組合語言編譯器中都是用EQU定義一切。 10/01 00:53