大神帮我把这段C代码转换成汇编语言。

宇宙最强皮皮虾 2015-12-03 01:35:08

朋友正好有这个作业,奈何我不懂C和汇编语言。请各位帮帮忙,最好写上注解,功能要一样,我要和电路图连起来的








#include<reg52.h>
sbit DQ = P3^0;
unsigned char code
tab[] = {0xc0,0xf9,0xa4,0xb0,0x92,0x82,0xf8,0x80,0x90};
void delay(int i)
{
while(i--);
}

void tdelay(int useconds)
{
int s;
for(s=0;s<useconds;s++)
;
}
unsigned char ow_reset(void) {
unsigned char presence;
DQ=0;
tdelay(29);
DQ=1;
tdelay(3);
presence = DQ;
tdelay(25);
return(presence);
}
void write_bit(char bitval) {
DQ=0;
if(bitval==1) DQ=1;
tdelay(5);
DQ = 1;


}
void write_byte(char val) {
unsigned char i;
unsigned char temp;
for (i=0;i<8;i++) {
temp=val>>i;
temp&=0x01;
write_bit(temp);
}
tdelay(5);
}
unsigned char read_bit(void){
unsigned char i;
DQ=0;
DQ=1;
for(i=0;i<3;i++);
return(DQ);
}
unsigned char read_byte(void){
unsigned char i;
unsigned char value=0;
for(i=0;i<8;i++){
if(read_bit())value|=0x01<<i;
tdelay(6);
}
return(value);
}
unsigned int read_temperature(void){
unsigned char get[10];
unsigned char temp_lsb,temp_msb;
unsigned int t;
unsigned char k;
ow_reset();
write_byte(0xcc);
write_byte(0x44);
tdelay(5);
ow_reset();
write_byte(0xcc);
write_byte(0xbe);
for(k=1;k<2;k++){get[k]=read_byte();}
temp_msb=get[1];
temp_lsb=get[0];
t=temp_msb*256+temp_lsb;
t=t&0x0ff0;
if(t<0xff&&t>0xf0)
t=(-1)*t;
return t>>4;
}
void main(void)
{unsigned char temp,bw,sw,gw,tempd;
while(1)
{temp=read_temperature();
bw=temp/100;
tempd=temp%10;
if(225>temp>=0)
{
P2=0x01;
P0=tab[bw];
delay(1000);
P2=0x00;
P2=0x02;
P0=tab[sw];
delay(1000);
P2=0x00;
P2=0x04;
P0=tab[sw];
delay(1000);
P2=0x00;
P2=0x08;
P0=0xc6;
delay(1000);
P2=0x00;
}
if(temp>=40)
{
P1=0xff;
}
else
{
P1=0x00;
}} }
...全文
399 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 seanking1987 的回复:
等我把头折成90度再来看看
有打出来的代码啊。
paschen 2015-12-05
  • 打赏
  • 举报
回复
引用 5 楼 u011702993 的回复:
[quote=引用 4 楼 seanking1987 的回复:] 等我把头折成90度再来看看
有打出来的代码啊。[/quote] 上个可以正常编译的代码来
  • 打赏
  • 举报
回复
来人
seanking1987 2015-12-04
  • 打赏
  • 举报
回复
等我把头折成90度再来看看
lm_whales 2015-12-04
  • 打赏
  • 举报
回复
代码编辑好,选择合适的编译器,编译输出汇编语言代码即可 如果需要名字可读性,手动改变编译器生成的名字。 几乎每个编译器都有这个功能。 人工翻译 的话,必须自己做,不然不会了解为何翻译成这个样子。
paschen 2015-12-03
  • 打赏
  • 举报
回复
把代码输入后,在调试过程中通过反汇编窗口查看转换成的汇编代码,或者把生成的EXE文件用IDA等工具生成反汇编代码

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧