- 博客(0)
- 资源 (2)
- 收藏
- 关注
ARM 指令集 开发参考
arm指令集 嵌入式 arm平台开发参考使用.
ARM 处理器有二十七个寄存器,其中一些是在一定条件下使用的,所以一次只能使用十六个...
寄存器 0 到寄存器 7 是通用寄存器并可以用做任何目的。不象 80x86 处理器那样要求特定寄存器被用做栈访问,或者象 6502 那样把数学计算的结果放置到一个累加器中,ARM 处理器在寄存器使用上是高度灵活的。
寄存器 8 到 12 是通用寄存器,但是在切换到 FIQ 模式的时候,使用它们的影子(shadow)寄存器。
寄存器 13 典型的用做 OS 栈指针,但可被用做一个通用寄存器。这是一个操作系统问题,不是一个处理器问题,所以如果你不使用栈,只要你以后恢复它,你可以在你的代码中自由的占用(corrupt)它。每个处理器模式都有这个寄存器的影子寄存器。
寄存器 14 专职持有返回点的地址以便于写子例程。当你执行带连接的分支的时候,把返回地址存储到 R14 中。同样在程序第一次运行的时候,把退出地址保存在 R14 中。R14 的所有实例必须被保存到其他寄存器中(不是实际上有效)或一个栈中。这个寄存器在各个处理器模式下都有影子寄存器。一旦已经保存了连接地址,这个寄存器就可以用做通用寄存器了。
寄存器 15 是程序计数器。它除了持有指示程序当前使用的地址的二十六位数之外,还持有处理器的状态。
为更清晰一些... 提供下列图表:
2010-01-21
ffmpeg asf mux in vc2005
这几天需要参考FFmpeg的asfenc的asf muxer功能写一个跨平台的程序, 就把ffmpeg里面的output_example.c和对应的libavcodec/msmpeg4 mp2; libavformat/asfenc 的功能和代码移植到windows, 没有使用其他的编译器, 直接用VC的console跑完整个程序.
感觉像ffmpeg这种开源项目的代码还是模块化分得很清楚, 不需要的东西都用宏关的很好.
例子程序生成一个asf输出文件,供大家参考.
2009-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人