展开全部
将C语言程序转为汇编,有三种方法:
1 读懂C语言的含义,并针对功能,用汇编书写。
由于C语言是很接近底层的语言,大多数C语言语句,都有对应或类似功能的汇编代码段,将相同功能实现即可得到汇编程序。
2 借助于编译软件,自动将C语言转为汇编代码。
编译软件最终将C代码编译成二进制代码,而二进制代码与汇编是一一对应的,所以部分编译器也提供汇编输出功能。
如gcc,要将a.c转为汇编程序a.S,只需要
gcc a.c -o a.S -S即可。
3 先将C语言编译成可执行文件,再利用反编译工具,将可执行文件转为汇编语言。
说明: 2和3的方法本质相同,均会产生大量的冗余代码。
1 读懂C语言的含义,并针对功能,用汇编书写。
由于C语言是很接近底层的语言,大多数C语言语句,都有对应或类似功能的汇编代码段,将相同功能实现即可得到汇编程序。
2 借助于编译软件,自动将C语言转为汇编代码。
编译软件最终将C代码编译成二进制代码,而二进制代码与汇编是一一对应的,所以部分编译器也提供汇编输出功能。
如gcc,要将a.c转为汇编程序a.S,只需要
gcc a.c -o a.S -S即可。
3 先将C语言编译成可执行文件,再利用反编译工具,将可执行文件转为汇编语言。
说明: 2和3的方法本质相同,均会产生大量的冗余代码。
展开全部
我写个,不过你说的外部ram 我不知道你指的是哪个。所以我就么写,
#include<reg51.h>
#define uchar unsigned char
uchar *p;
uchar code table[]={0x21,0x23,0x25,0x26,0x27,0x28,0x29,0x22,0x31,0x33,0x35,0x36,0x37,0x38,0x39,0x32,0x50,0x51,0x52,0x53,0x55,0x56,0x57,0x58,0x69,0x98,0x85,0x76,0x92,0x83,0x65,0x66};
P2 = 0x40;
p=table;//指针p 指向表table 首地址。就相当于把表格整个赋值给P了,P 可以直接指向外部RAM;
#include<reg51.h>
#define uchar unsigned char
uchar *p;
uchar code table[]={0x21,0x23,0x25,0x26,0x27,0x28,0x29,0x22,0x31,0x33,0x35,0x36,0x37,0x38,0x39,0x32,0x50,0x51,0x52,0x53,0x55,0x56,0x57,0x58,0x69,0x98,0x85,0x76,0x92,0x83,0x65,0x66};
P2 = 0x40;
p=table;//指针p 指向表table 首地址。就相当于把表格整个赋值给P了,P 可以直接指向外部RAM;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
转换成什么汇编语言?
基本上,得重新编写。
基本上,得重新编写。
更多追问追答
追问
AT89S52的
追答
把你的程序,放在你的百度网盘,共享。
把链接,写在这里。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编译器直接就可以转换。。。还需要这么麻烦???
更多追问追答
追问
你有编译器?
追答
VC++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询