标题: 下面的2个C语言计算语句怎么用汇编语言来表示呢? [打印本页]
作者: 2844304776 时间: 2020-6-7 08:23
标题: 下面的2个C语言计算语句怎么用汇编语言来表示呢?
求教大佬,下面的Mileage=Mileage+Velocity*500/36; Velocity=count/5 怎么用汇编表示出来呢?
void EXINT0() interrupt 0
{
count++;
}
void time0() interrupt 1
{
uchar m;
TH0=0x3c;
TL0=0xb0; //50ms
m++;
if(m>=10)
{
m=0;
Mileage=Mileage+Velocity*500/36; //里程m=速度km/h*1000*5/3.6
Velocity=count/5;//将100ms内的脉冲数
count=0;
}
}
作者: qhlfree 时间: 2020-6-7 22:47
不要在中断做乘除,ARM上百兆的带硬件乘除的土豪随意. 中断改为 void time0() interrupt 1 { uchar m; TH0=0x3c; TL0=0xb0; //50ms m++; if(m>=10) { m=0; gFLCalc=TURE; } ,在主循环中 增加if(gFLCalc){ gFLCalc=0; Mileage=Mileage+Velocity*500/36; //里程m=速度km/h*1000*5/3.6 Velocity=count/5;//将100ms内的脉冲数 count=0; }
作者: qhlfree 时间: 2020-6-7 22:49
我看是50ms的中断,也可以将 if(gFLCalc)的查询放在按键任务内
作者: Y_G_G 时间: 2020-6-8 08:29
KEIL环境下进行仿真,自然就转换成汇编语言了,比较难看懂
作者: yzwzfyz 时间: 2020-6-8 11:20
1、首先你打算用几个字节来表求:Mileage、Velocity、count。
2、放在什么地方。
3、你打算用什么方式来标示数值,整数部分放哪里,小点部分放哪里、二进制还是十进制。
4、编写与格式相对应的加、减、乘、除法。
5、调用加、减、乘、除法,计算Mileage。
C中一句话,汇编或能要用百千行。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |