打印

汇编TC_10ms EQU (SYSCLK / 12) * 10的问题

[复制链接]
2128|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
riki2006|  楼主 | 2009-9-15 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chunyang| | 2009-9-15 11:33 | 只看该作者
只有高级语言才支持。

使用特权

评论回复
板凳
ZRL700424| | 2009-9-15 11:51 | 只看该作者
可以,绝大多数编译器都是可以的:

AVR汇编:       
.EQU        ABC=0X0108*1.06/2

     CPI        R17,5000/250
     BRCS        TMR0_RET

使用特权

评论回复
地板
ZRL700424| | 2009-9-15 11:57 | 只看该作者
下面这些都是汇编语句:    
     IN        R17,PINC       
        ANDI        R17,(1<<HY)
        IN        R18,PINA
        ANDI        R18,(1<<WK)|(1<<FY)|(1<<FDKG)
        OR        R17,R18

使用特权

评论回复
5
ZRL700424| | 2009-9-15 11:59 | 只看该作者
PIC的汇编:
     MOVLW        ~(1<<HI)
        ANDWF        PORTB,F
        MOVLW        ~((1<<ZF)|(1<<FDF))

使用特权

评论回复
6
21ID| | 2009-9-15 12:00 | 只看该作者
可以的,支持加减乘除

使用特权

评论回复
7
riki2006|  楼主 | 2009-9-15 12:04 | 只看该作者
还有在程序里也可以吗?有这样一条语句
mov   SP, #STACK-1            ; init stack pointer

所以请高手解答一下,这样在汇编里应用这样的运算有什么规定,比如在keil的汇编环境下。

使用特权

评论回复
8
awey| | 2009-9-15 12:05 | 只看该作者
条件是参加运算的都是常量

使用特权

评论回复
9
因特网用户| | 2009-9-15 12:31 | 只看该作者
是的

使用特权

评论回复
10
ZRL700424| | 2009-9-15 12:36 | 只看该作者
如果是常量的话,加减乘除、左移、右移、或、与、取反等一般的编译器都是支持的(比如AVR、PIC、三星、合泰、十速等等),少数的个别不支持(比如凌阳的不支持或和与),也有些很差劲的编译器连加减乘除都不支持(如小日本的一些芯片:NEC、瑞萨等,这种芯片偶是不会用的)

使用特权

评论回复
11
riki2006|  楼主 | 2009-9-15 12:50 | 只看该作者
明白了 谢谢各位

使用特权

评论回复
12
chengfei21| | 2009-9-15 22:20 | 只看该作者
这些都是汇编器帮你运算

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

50

帖子

0

粉丝