ARM 指令 关于DCD和SPACE的一个问题

Golden_Chen 2009-04-16 01:18:21
语句如下:
FiqStackSpace SPACE FIQ_Stack_Legth
FiqStack DCD FiqStackSpace + FIQ_Stack_Legth

最后一条语句,DCD的后面跟FiqStackSpace + FIQ_Stack_Legth,
DCD后面的FiqStackSpace,表示一串空字符,这好理解
但是再上FIQ_Stack_Legth,就不明白了,WHY?
...全文
2036 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzp20 2009-11-17
  • 打赏
  • 举报
回复
很有用啊
OneOnce 2009-11-13
  • 打赏
  • 举报
回复
FiqStackSpace SPACE FIQ_Stack_Legth
FiqStack DCD FiqStackSpace + FIQ_Stack_Legth

分配一直空间,起始地址是:FIQ_Stack_Legth ,空间大小FiqStackSpace + FIQ_Stack_Legth(其实地址加偏移量或者说长度)。

就跟C中申请内存一样:
PBYTE p;
p = (PBYTE)malloc(100);
lzycome 2009-11-12
  • 打赏
  • 举报
回复
ldr r0,=XX 此时的 XX 是地址(伪指令)
ldr r0,XX 此时的 XX 是值
Golden_Chen 2009-04-20
  • 打赏
  • 举报
回复
{Label} DCD expr 表示分配一段字内存,并用expr初始化
上楼说FiqStackSpace+ FIQ_Stack_Legth 是一个地址值,那编译时如何区分地址值和初始化值的?
这一点比较迷糊。
liaifeilove 2009-04-16
  • 打赏
  • 举报
回复
FiqStackSpace是标号,相当与地址,实际上就是在FiqStackSpace SPACE FIQ_Stack_Legth 这个语句给分配的空间的首地址,FiqStackSpace+ FIQ_Stack_Legth 是这个地址空间的结束地址,将FiqStack指向这个地址,当做栈的顶部,该栈向下生长,长度FIQ_Stack_Legth

19,524

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧