智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 7120|回复: 13
打印 上一主题 下一主题

codewarrior里怎么在C中插入汇编?

[复制链接]

29

主题

700

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6749

论坛元老奖章热心会员奖章在线王奖章优秀会员奖章活跃会员奖章

QQ
威望
2529
贡献
1556
兑换币
665
注册时间
2011-1-10
在线时间
1332 小时
跳转到指定楼层
1#
发表于 2011-10-21 09:21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT.起因在PIT模块中 中断里清除标志位不能使用
PITTF_PTFx = 1;
上面这条语句等同于汇编中的
BSET PITTF_PTFx, #0x01
PDF中关于清除标志位有如下解释
A flag is cleared by writing a one to the flag bit. Always use store or move instructions to write a one in
certain bit positions. Do not use the BSET instructions. Do not use any C-constructs that compile to BSET
instructions.
“BSET flag_register, #mask” must not be used for flag clearing because BSET is a readmodify-
write instruction which writes back the “bit-wise or” of the flag_register and the mask into the
flag_register. BSET would clear all flag bits that were set, independent from the mask.
For example, to clear flag bit 0 use: MOVB #$01,PITTF.
要清除标志位,必须使用 MOVB #mask, flag_register 这条汇编语句或者C-constructs that compile to MOVB instructions.
我在论坛上搜到关于类似的贴:
http://www.znczz.com/thread-56088-1-1.html
那么怎么样用C结构的语句来实现汇编中MOVB结构?
在KEIL 中利用编译控制命令#pragma asm(用来标识所插入的汇编语句的起始位置)
和 #pragma endasm (用来标识所插入的汇编语句的结束位置)中插入汇编
类似的,还有一个问题,codewarrior里,C语言中如何插入汇编?
小弟初来乍到,望各位解答!

29

主题

700

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6749

论坛元老奖章热心会员奖章在线王奖章优秀会员奖章活跃会员奖章

QQ
威望
2529
贡献
1556
兑换币
665
注册时间
2011-1-10
在线时间
1332 小时
2#
 楼主| 发表于 2011-10-21 15:39:54 | 只看该作者
没人知道?
回复 支持 反对

使用道具 举报

35

主题

153

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3903

论坛元老奖章活跃会员奖章优秀会员奖章

威望
436
贡献
3327
兑换币
16
注册时间
2011-5-29
在线时间
70 小时
3#
发表于 2011-10-21 19:28:20 | 只看该作者
看看
回复 支持 反对

使用道具 举报

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
4#
发表于 2011-10-21 22:52:18 | 只看该作者
本帖最后由 chenrunshe_007 于 2011-10-21 22:55 编辑

回复 1# whut_RY
有两点:1.所有能用汇编的程序在CW里面都能用C实现,楼主仔细找找Datasheet,里面肯定有清除标志位的寄存器,可以直接写入赋值。
2.在C中嵌入汇编是在C语言程序中加入
_asm
{
    MOVB XX XX
    BSET XX
    ....
};
好像是这样吧,具体格式不太记得了,不过你去查Datasheet,有些章节的后面有关于本模块的例程,一般都是有两个版本的例程,分别为C和汇编,参考一下就知道了。
回复 支持 反对

使用道具 举报

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
5#
发表于 2011-10-21 22:53:07 | 只看该作者
回复 1# whut_RY
闲话一句,又是碰到万剑哥的学弟学妹啊,看来whut这个前缀很多人用啊。
回复 支持 反对

使用道具 举报

29

主题

700

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6749

论坛元老奖章热心会员奖章在线王奖章优秀会员奖章活跃会员奖章

QQ
威望
2529
贡献
1556
兑换币
665
注册时间
2011-1-10
在线时间
1332 小时
6#
 楼主| 发表于 2011-10-21 23:11:30 | 只看该作者
回复 4# chenrunshe_007
谢谢!
1.相当给力!我好好找找!
2.这个写法是对的,我刚问了同学,他也是这么说的!
回复 支持 反对

使用道具 举报

29

主题

700

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6749

论坛元老奖章热心会员奖章在线王奖章优秀会员奖章活跃会员奖章

QQ
威望
2529
贡献
1556
兑换币
665
注册时间
2011-1-10
在线时间
1332 小时
7#
 楼主| 发表于 2011-10-21 23:13:22 | 只看该作者
回复 5# chenrunshe_007
虽然未当面见过wj前辈,但是作为whut人,必须向前辈致敬!whut智能车队伍必须V5起来!哈哈!
回复 支持 反对

使用道具 举报

5

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2904
威望
1523
贡献
819
兑换币
227
注册时间
2011-5-21
在线时间
281 小时
8#
发表于 2011-10-21 23:55:56 | 只看该作者
4#正解
回复 支持 反对

使用道具 举报

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
9#
发表于 2011-10-24 22:02:52 | 只看该作者
回复 7# whut_RY
我们好多智能车论坛的人都在深圳,有机会来深圳去华为找你前辈。
回复 支持 反对

使用道具 举报

29

主题

700

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6749

论坛元老奖章热心会员奖章在线王奖章优秀会员奖章活跃会员奖章

QQ
威望
2529
贡献
1556
兑换币
665
注册时间
2011-1-10
在线时间
1332 小时
10#
 楼主| 发表于 2011-10-24 22:31:57 | 只看该作者
回复  whut_RY
我们好多智能车论坛的人都在深圳,有机会来深圳去华为找你前辈。
chenrunshe_007 发表于 2011-10-24 22:02

谢谢!有机会一定!现在为智能车好好努力!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 10:38 , Processed in 0.155061 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表