把c语言程序翻译成汇编语言。。

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit ST=P3^1;
sbit EOC=P3^2;
sbit OE=P3^3;
sbit led1=P3^0;
sbit led3=P3^7;
void led(uint dat)
{if((dat>200)||(dat<100))
{ led1=0;
led3=1;
}
else
{ led1=1;
led3=0;
}
}
void delay(uint x)
{
inti,j;
for(i=x;i>0;i--)
for(j=124;j>0;j--);
}
void display(uint dat)
{
uchartmp=0;
tmp=(dat%10);
P2=0xf7;
P0=tmp;
tmp=((dat%100)/10);
P2=0xfb;
P0=tmp;
delay(2);
tmp=(dat/100);
P2=0xfd;
P0=(0x10|tmp);
delay(2);

}
void init_adc(void)
{
ST=0;
EOC=1;
OE=0;
P3&=0x0f;
P3|=0x10;
}
void start_adc(void)
{
OE=0;
ST=0;
ST=1;
ST=0;

}
uchar adc0808(void)
{
uchardat=0;
uchari=0;
P1=0xff;
delay(1);
while(EOC==0&&i++<250)
{
delay(1);
}
OE=1;
_nop_();_nop_();
dat=P1;
OE=0;
returndat;
}

void main(void)
{
uint tmp=0;
init_adc();
while(1)
{
start_adc();
tmp=adc0808();
tmp=(tmp*100)/51;
display(tmp);
led(tmp);
}
}

编译以后,改后缀exe为dat,然后用debug 打开这个文件,用u可以看到反汇编代码的内容追问

那样的话 很多都是错的啊!!! 根本就不得行】

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-19
vc6.0就行,放进去加断点debug执行,在代码部分右击,选go to disassembly,双语对照

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网