標(biāo)題: 下面的2個(gè)C語言計(jì)算語句怎么用匯編語言來表示呢? [打印本頁]
作者: 2844304776 時(shí)間: 2020-6-7 08:23
標(biāo)題: 下面的2個(gè)C語言計(jì)算語句怎么用匯編語言來表示呢?
求教大佬,下面的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內(nèi)的脈沖數(shù)
count=0;
}
}
作者: qhlfree 時(shí)間: 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; } ,在主循環(huán)中 增加if(gFLCalc){ gFLCalc=0; Mileage=Mileage+Velocity*500/36; //里程m=速度km/h*1000*5/3.6 Velocity=count/5;//將100ms內(nèi)的脈沖數(shù) count=0; }
作者: qhlfree 時(shí)間: 2020-6-7 22:49
我看是50ms的中斷,也可以將 if(gFLCalc)的查詢放在按鍵任務(wù)內(nèi)
作者: Y_G_G 時(shí)間: 2020-6-8 08:29
KEIL環(huán)境下進(jìn)行仿真,自然就轉(zhuǎn)換成匯編語言了,比較難看懂
作者: yzwzfyz 時(shí)間: 2020-6-8 11:20
1、首先你打算用幾個(gè)字節(jié)來表求:Mileage、Velocity、count。
2、放在什么地方。
3、你打算用什么方式來標(biāo)示數(shù)值,整數(shù)部分放哪里,小點(diǎn)部分放哪里、二進(jìn)制還是十進(jìn)制。
4、編寫與格式相對(duì)應(yīng)的加、減、乘、除法。
5、調(diào)用加、減、乘、除法,計(jì)算Mileage。
C中一句話,匯編或能要用百千行。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |