急急............求c语言编译成汇编语言...
#include <reg52.h>
#include"LCD1602.h"
sbit P1_0 = P1^0;
sbit P1_1 = P1^1;
sbit P1_2 = P1^2;
sbit P1_3 = P1^3;
sbit P1_5 = P1^5;
sbit P1_6 = P1^6;
sbit P3_6 = P3^6;
sbit P3_7 = P3^7;
sbit P2_4 = P2^4;
unsigned char speed=100;
unsigned int y;
void printXY(int x,int y,char *st)
{
GotoXY(x,y);
Print(st);
}
void disspeed(void)
{
unsigned char SPEEDdis[3];
SPEEDdis[0]=60*36/speed/100+0x30; //百位
SPEEDdis[1]=60*36/speed%100/10+0x30; //十位 //显示ASCII字符
SPEEDdis[2]=60*36/speed%100%10+0x30; // 个位
printXY(13,1,SPEEDdis);
}
void delay(unsigned char de)
{
unsigned char ch =1;
while(de--)
while(ch--);
}
void int2() interrupt 2
{
if(P1_0==0)
{
speed=speed-4;//加速
if(speed<10)
speed=10;
P1_1=1;P1_2=1;P1_3=1;
disspeed();
while(!P1_0);
}
if(P1_1==0)
{
speed=speed+10;
if(speed>200) //减速
speed=200;
P1_0=1;P1_2=1;P1_3=1;
disspeed();
while(!P1_1);
}
if(P1_2==0)
{
P3_6=1; //正转
P1_0=1;P1_1=1;P1_3=1;
printXY(13,0," CW");
while(!P1_2);
}
if(P1_3==0)
{
P3_6=0; //反转
P1_0=1;P1_1=1;P1_2=1;
printXY(13,0,"ICW");
while(!P1_3);
}
}
void int0() interrupt 0
{
y=0;
}
void main()
{
P1_5=1;
P1_6=1;
y=1;
if(P1_5==0) //启动按钮
{
IT0 = 1;
EA = 1;
EX0 = 1;
EX1=1;
P3_6 = 1;
P1_0 = 1; //以下几位作为输入口
P1_1 = 1;
P1_2 = 1;
P1_3 = 1;
Lcd_Init();
printXY(0,1,"SPEED(n/min):");
printXY(0,0,"MotoRun_direc CW");
disspeed();
while(1)
{
delay(speed);
P3_7=~P3_7; //通过speed调节P3_7频率
if(y==0) //停止按钮
{
EA = 0;
y=1;
break; //跳出当前循环,即while循环
}
}
}
}
追问:请问怎样生成呢?怎么找不到的呢?
答案:似乎是51单片机的程序吧,用keil c可以直接生成汇编
其他:一般编译器都能干这个工作,比如keil就可以输出汇编。方法是,选项listing中勾上assembly code,则lst文件中就有汇编代码。 编辑完,用编译好的二进制文件,再下个51反汇编的,弄一下就出来. 你可以把程序输入到编译器里,然后输出汇编就可以了,很简单的。
上一个:看完王爽的汇编语言后有没必要再看“80x86汇编语言程序设计教程”才能看罗云斌那本?
下一个:急!!!微机原理课本里面的汇编语言例子,用MASMPlus运行错误。请问错在哪里?