作者WolfLord (呆呆小狼)
看板ASM
標題Re: [問題] 請教一個8051的觀念
時間Mon Sep 28 23:57:02 2009
※ 引述《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
1F:→ waynecone:是說我嗎?!= ="sorry我只不過是下意識的反應!! 09/29 01:06
2F:推 waynecone:而我會說用bit是因為我用的組意軟體是asem這套免費的組 09/29 01:12
3F:→ waynecone:器!他剛好也是用bit來定義位元!所以我才會這樣回答!並沒 09/29 01:13
4F:→ waynecone:有其他的意思!當然也不鼓吹盜版之類的!XDD 09/29 01:14
5F:→ WolfLord:抱歉,最近老碰到一堆理所當然跟人家討KEIL序號的白目 09/29 01:31
6F:→ WolfLord:看到這種把專屬定義當理所當然的說法有點反應過度了m=.=m 09/29 01:32
7F:推 stool100:BIT是必然需要的定義.因為MCU有位原定址功能 09/30 21:12
8F:推 waynecone:甚麼叫做必然需要?????不懂這句話= =" 09/30 22:28
9F:推 ruemann:大概是說一定會支援吧。不過不是只有bit這種定義方式就是 09/30 23:51
10F:→ proach:其實 Keil C51有免費限制版可以合法download :P 10/01 00:27
11F:→ WolfLord:BIT並不是一個必須的定義,但是他是一個方便的定義。可以 10/01 00:51
12F:→ WolfLord:預防笨蛋把BIT ADDRESS拿去BYTE用或反過來把BYTE拿去BIT 10/01 00:52
13F:→ WolfLord:用,但是實際上BIT只是編譯器的一個防呆符號。事實上在大 10/01 00:52
14F:→ WolfLord:多數的原生組合語言編譯器中都是用EQU定義一切。 10/01 00:53