作者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