你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
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语言中嵌入汇编,并让汇编代码对齐