你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
在C语言中嵌入汇编,并让汇编代码对齐
[复制链接]
ES2000
提问时间:2012-4-9 12:44 /
我尝试过在 INFI_LOOP_1600KHZ 标号的后面加上 .l 让它4字节对齐,但编译时,提示出错。
如果不对齐的话,出来的波形不正确。
赞
0
收藏
0
评论
6
分享
发布时间:2012-4-9 12:44
举报
请先
登录
后回复
6个回答
ES2000
回答时间:2012-4-9 12:45:53
a0a.1 0b0c
RE:在C语言中嵌入汇编,并让汇编代码对齐
就是让 INFI_LOOP_1600KHZ 这个标号 4 字节对齐。
赞
0
评论
回复
支持
反对
swallow1029
回答时间:2012-4-9 13:53:21
a0a.1 0b0c
RE:在C语言中嵌入汇编,并让汇编代码对齐
关注中,本人也在学习开发中。谢谢,等待高人
赞
0
评论
回复
支持
反对
废鱼
回答时间:2012-4-9 15:29:06
a0a.1 0b0c
RE:在C语言中嵌入汇编,并让汇编代码对齐
1、4字节对齐是指?
2、错误信息贴出来。
赞
0
评论
回复
支持
反对
ES2000
回答时间:2012-4-9 16:27:29
a0a.1 0b0c
RE:在C语言中嵌入汇编,并让汇编代码对齐
4字节对齐,就是让汇编代码的第一条指令
LD A, $500F
放在以 XXX0H、XXX4H、XXX8H、XXXCH 开始的地方。
如果不那样做,发现程序执行起来,慢了,多花了一个 clk 的时间,照成无法准确输出 1.6 MHz 的方波信号。
而如果,地址对齐,就和预想的一样。
我曾在前面加上 NOP 空指令来填补,让代码的第一条指令4字节对齐,但修改代码后,并不总是管用,似乎有时候需要 NOP,而有时候不需要。
有没有一种方法,强制的将字节的代码4字节对齐,让编译器来做填补的工作。
赞
0
评论
回复
支持
反对
ES2000
回答时间:2012-4-9 16:38:06
a0a.1 0b0c
RE:在C语言中嵌入汇编,并让汇编代码对齐
图片中的死循环用来产生 1.6 MHz 的波形。
本来 5 clks 就能执行完一次循环,如果开始地址不 4 字节对齐,就会花 6 clks 才能执行完。
是预取指令的原因,还是编译器偷偷的加了什么指令?
反正地址对齐,问题就没有了。
赞
0
评论
回复
支持
反对
废鱼
回答时间:2012-4-10 17:18:21
a0a.1 0b0c
RE:在C语言中嵌入汇编,并让汇编代码对齐
这个就需要你去看每条指令占用的字节了,比如MOV占用1个字节,而ADDC占用2个字节。
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
RE:在C语言中嵌入汇编,并让汇编代码对齐
RE:在C语言中嵌入汇编,并让汇编代码对齐
RE:在C语言中嵌入汇编,并让汇编代码对齐
2、错误信息贴出来。
RE:在C语言中嵌入汇编,并让汇编代码对齐
LD A, $500F
放在以 XXX0H、XXX4H、XXX8H、XXXCH 开始的地方。
如果不那样做,发现程序执行起来,慢了,多花了一个 clk 的时间,照成无法准确输出 1.6 MHz 的方波信号。
而如果,地址对齐,就和预想的一样。
我曾在前面加上 NOP 空指令来填补,让代码的第一条指令4字节对齐,但修改代码后,并不总是管用,似乎有时候需要 NOP,而有时候不需要。
有没有一种方法,强制的将字节的代码4字节对齐,让编译器来做填补的工作。
RE:在C语言中嵌入汇编,并让汇编代码对齐
本来 5 clks 就能执行完一次循环,如果开始地址不 4 字节对齐,就会花 6 clks 才能执行完。
是预取指令的原因,还是编译器偷偷的加了什么指令?
反正地址对齐,问题就没有了。
RE:在C语言中嵌入汇编,并让汇编代码对齐