Re: [問題] 請教一個8051的觀念

看板ASM作者 (呆呆小狼)時間14年前 (2009/09/28 23:57), 編輯推噓4(4010)
留言14則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《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

09/29 01:06, , 1F
是說我嗎?!= ="sorry我只不過是下意識的反應!!
09/29 01:06, 1F

09/29 01:12, , 2F
而我會說用bit是因為我用的組意軟體是asem這套免費的組
09/29 01:12, 2F

09/29 01:13, , 3F
器!他剛好也是用bit來定義位元!所以我才會這樣回答!並沒
09/29 01:13, 3F

09/29 01:14, , 4F
有其他的意思!當然也不鼓吹盜版之類的!XDD
09/29 01:14, 4F

09/29 01:31, , 5F
抱歉,最近老碰到一堆理所當然跟人家討KEIL序號的白目
09/29 01:31, 5F

09/29 01:32, , 6F
看到這種把專屬定義當理所當然的說法有點反應過度了m=.=m
09/29 01:32, 6F

09/30 21:12, , 7F
BIT是必然需要的定義.因為MCU有位原定址功能
09/30 21:12, 7F

09/30 22:28, , 8F
甚麼叫做必然需要?????不懂這句話= ="
09/30 22:28, 8F

09/30 23:51, , 9F
大概是說一定會支援吧。不過不是只有bit這種定義方式就是
09/30 23:51, 9F

10/01 00:27, , 10F
其實 Keil C51有免費限制版可以合法download :P
10/01 00:27, 10F

10/01 00:51, , 11F
BIT並不是一個必須的定義,但是他是一個方便的定義。可以
10/01 00:51, 11F

10/01 00:52, , 12F
預防笨蛋把BIT ADDRESS拿去BYTE用或反過來把BYTE拿去BIT
10/01 00:52, 12F

10/01 00:52, , 13F
用,但是實際上BIT只是編譯器的一個防呆符號。事實上在大
10/01 00:52, 13F

10/01 00:53, , 14F
多數的原生組合語言編譯器中都是用EQU定義一切。
10/01 00:53, 14F
文章代碼(AID): #1AmDpHkz (ASM)
文章代碼(AID): #1AmDpHkz (ASM)