请教下armasm里面MAP,FIELD的问题

[复制链接]
2737|2
 楼主| afterqcd 发表于 2008-10-25 13:44 | 显示全部楼层 |阅读模式
定义:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br />count&nbsp;&nbsp;&nbsp;FIELD&nbsp;&nbsp;&nbsp;4<br />type&nbsp;&nbsp;&nbsp;&nbsp;FIELD&nbsp;&nbsp;&nbsp;4<br />size&nbsp;&nbsp;&nbsp;&nbsp;FIELD&nbsp;&nbsp;&nbsp;0<br />下面是如何使用:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SUB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sp,&nbsp;sp,&nbsp;#size<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;#0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;[sp,&nbsp;#count]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;[sp,&nbsp;#type]<br /><br />我的疑问就是size既然被定义成0大小,那么就不能存储任何值,为什么还能被引用呢?<br />还就是为什么要把size定义成0字节?<br /><br />在44b0的启动代码里面我也见到这种情况,是在为各种栈预留空间的时候<br />&nbsp;&nbsp;&nbsp;&nbsp;^&nbsp;&nbsp;&nbsp;&nbsp;(_ISR_STARTADDRESS-0x500)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />UserStack&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;256&nbsp;&nbsp;&nbsp;&nbsp;;c1(c7)ffa00<br />SVCStack&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;256&nbsp;&nbsp;&nbsp;&nbsp;;c1(c7)ffb00<br />UndefStack&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;256&nbsp;&nbsp;&nbsp;&nbsp;;c1(c7)ffc00<br />AbortStack&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;256&nbsp;&nbsp;&nbsp;&nbsp;;c1(c7)ffd00<br />IRQStack&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;256&nbsp;&nbsp;&nbsp;&nbsp;;c1(c7)ffe00<br />FIQStack&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;;c1(c7)fff00<br />最后FIQStack也是0字节<br /><br />搞不懂,求教<br /><br />谢谢<br /><br />
 楼主| afterqcd 发表于 2008-10-27 10:21 | 显示全部楼层

自己顶一个

求解啊
biehoff 发表于 2008-10-28 11:08 | 显示全部楼层

RE

MAP&nbsp;后面的0&nbsp;是表示MAP区开始的首地址&nbsp;而不是SIZE大小<br />count&nbsp;field&nbsp;4&nbsp;<br />count是标号&nbsp;&nbsp;4是SIZE大小&nbsp;意思是&nbsp;count的空间是&nbsp;0&nbsp;到&nbsp;3&nbsp;&nbsp;一共4个字节<br /><br />FIQStack&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;<br />FIQSTACK已经是&nbsp;MAP最后一个标号了&nbsp;&nbsp;SIZE是0&nbsp;其实是SIZE不定的意思吧&nbsp;也就是说&nbsp;FIQSTACK的起始地址确定&nbsp;但大小不定&nbsp;随便你用···<br />&nbsp;&nbsp;<br />你该先去看看&nbsp;ARM&nbsp;汇编伪指令&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;响应阿南版主号召&nbsp;&nbsp;“&nbsp;问前先查”哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部