怎么将C语言转成汇编代码51单片机的

#include<reg51.h> // 包含51单片机寄存器定义的头文件
sbit sound=P1^7; //将sound位定义为P1.7引
#define f1(a) (65536-a)/256
#define f2(a) (65536-a)%256
unsigned char i = 460;
unsigned int j = 0;
void main(void)
{
EA = 1; //开总中断.
ET1 = 1; //定时器T1中断允许 .
TMOD = 0x10; //TMOD=0001 000B,使用定时器T1的模式1
TH1 = f1(i); //定时器T1的高8位赋初值.
TL1 = f2(i); //定时器T1的高8位赋初值.
TR1 = 1; //启动定时器T1
while(1) { //无限循环.
i = 460;
while(j < 2000);
j = 0;
i = 360;
while(j < 2000);
j = 0;
}
}
void Time1(void) interrupt 3 using 0 //“interrupt”声明函数为中断服务函数.
{
TR1 = 0; //定时器T1
sound = ~sound;
TH1 = f1(i); //定时器T1的高8位重新赋初值.
TL1 = f2(i); //定时器T1的高8位重新赋初值.
j++;
TR1 = 1; //启动定时器T1
}

keil有这个功能,你单击仿真运行,然后应该会弹出一个汇编语言的窗口,那里面就是你这个程序的汇编版本。追问

我有keil,得到了LST文件,但是太乱了,不会整理。。

追答

去掉行号、夹杂的C部分,剩下的就是汇编了

追问

但是感觉东西太多了,还有些东西看不懂。方便的话能把我看一下么?可以的话加我Qq七八4 13 9 239

温馨提示:内容为网友见解,仅供参考
无其他回答

51单片机,有了c语言的程序,如何把它变换成汇编语言
可以实现,但转换的结果不是太理想,跟反汇编差不多,需要自己去整理,其转移的标号需要自己重新定义,转换结果里是用行地址替代的

怎么用c语言编程51单片机读写程序?
编程代码如下:ORG 0000H MOV DPTR,#1000H ;给源数据块地址指针DPTR赋初值 MOV P2, #20H ;给目的数据块地址指针P2和R0赋初值 MOV RO,#00H LOOP: MOVX A, @DPTR .MOVX @RO, A .INC DPTR INC RO CJNE RO,#64H, LOOP SJMP

51单片机,怎么样使得C语言与汇编语言结合起来?我想在C语言里调用汇编语 ...
首先写个H文件,把汇编的函数申明在里面 例如:extern bit plus(iu8 *d_dat,iu8 *s_dat,u8 len);然后,建立ASM文件,例如tool.asm 先指定存储区 ?PR?_plus?TOOL SEGMENT CODE ?PR?固定的,然后是函数名前+下划线,?TOOL 是这个asm的名字,CODE是存储区 然后向外申明函数 PUBLIC _plus ...

51\/52单片机 keil C语言 字符转数字
a就是第一个字符,*(++a)就是第二字符。再来一次*(++a)就是第三个字符,但是记得不要记a加的出了字符串的界就行了。要不就把串口发来的数据存到一个char a[10]的数组中。然后用的时候用下标去一个一个取,比如:a[0]就是第一个字符,a[1]就是第二个字符。单独取出来的字符再和'0'...

c语言编程c51单片机
define uint unsigned int main(){ uint xdata *xp;\/\/定义指向片外RAM的指针 uint data *p;\/\/定义指向片内RAM的指针 uchar i;\/\/定义循环变量 xp=0x100;\/\/指向片外RAM的100H单元 p=0x30;\/\/指向片内RAM的30H单元 for(i=0;i<10;i++){\/\/循环10次 p=*xp;\/\/将片外RAM单元中的内容传送...

8051单片机c语言编程 如何嵌入汇编语言呢?
方法是这样的 pragma ASM ; Assembler Code Here pragma ENDASM 不过你还得在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;嵌入汇编好嵌入不过我现在一直都闹不懂的...

单片机中c语言中如何加入汇编
1、在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码:2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;3、根据选择的编译模式,把相应的库文件(如 Small 模式...

请教:单片机C语言中如何嵌套汇编语言(MCS-51系列)
呵呵!~太简单了@!楼猪!program ASM ^^^ ^*& ^^*&&& end program 后面的单词有可能拼写错误

单片机keil c语言和汇编混合编程
操作步骤第一步:建工程,添加代码。例:test.c #include<reg51.h>typedef UINT16 unsigned int; void delay(UINT16 k){ UINT16 i,j; for(i=k; i>0; i--) for(j=110; j>0; j--); \/\/12M }int main(void){ P1=0x00; delay(1000); #pragma ASM\/\/汇编...

51单片机中C语言int能转换为字符串类型吗?怎么转换?
因为是C51, 所以不能用 VC++里面的C语言代码 eg: itoa, 也不要用打印的 eg: sprintf 为什么? 因为C51的内存太小 ,如果这样用非常占用资源. 下面的朋友回答就显得不够专业了.所以, 一般我们是这样自己写代码使用实现的: 字符串改为数组的形式 unsigned char dat[5];dat[4]=Num\/10000+'0';...

相似回答