51单片机,将1个C语言短程序改为汇编,很快的。加分

#include<reg51.h>
#define uchar unsigned char
uchar code table0[5]={0xff,0x81,0x81,0x81,0xff};
uchar code table7[5]={0x01,0x01,0x01,0x01,0xff};
uchar i;

void Delay_ms(int i)
{
uchar x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
}

void delay()
{
int a = 10;
while(a--);
}

void Dis ()
{
P0=table7;
for(i=0;i<5;i++)
{
P1=~(1<<i);
delay();
}
Delay_ms(1);
P0=table0;
for(i=0;i<5;i++)
{
P1=~(1<<i);
delay();
}
Delay_ms(1);
}

void main()
{
while(1)
Dis();
}

第1个回答  2014-06-12
ORG 0000H
MAIN:
LCALL DIS
SJMP MAIN
DELAY_MS:
MOV R2,#250
DELAYM:
NOP
NOP
DJNZ R2,DELAYM
DJNZ R7,DELAY_MS
RET

DELAY:
MOV R2,#10
DJNZ R2,$
RET

DIS:
MOV DPTR,#TABLE7
MOV R0,#0
MOV R3,#1
DISLP:
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R3
RL A
MOV R3,A
CPL A
MOV P1,A
LCALL DELAY
INC R0
CJNE R0,#5,DISLP
MOV R7,#1
LCALL DELAY_MS
MOV DPTR,#TABLE0
MOV R0,#0
MOV R3,#1
DISLP1:
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R3
RL A
MOV R3,A
CPL A
MOV P1,A
LCALL DELAY
INC R0
CJNE R0,#5,DISLP1
MOV R7,#1
LCALL DELAY_MS
END
TABLE0:
DB 0FFH,81H,81H,81H,0FFH
TABLE7:
DB 01H,01H,01H,01H,0FFH
END本回答被提问者和网友采纳
第2个回答  2014-06-11
直接编译过后反汇编
第3个回答  2014-06-11
用keil调试,就可以阅读到汇编程序

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

一小段单片机C语言程序翻译成汇编
有几种办法,一个就是了解其函数功能,。自己编写汇编。再一个就是用编译器编译这两个函数,然后看其生成的汇编代码。看这两个函数应该是C51的程序,用KEIL编译后,看得到这两个函数对应的汇编程序。不过这两个函数这么简单,自己用汇编写就好了。

keil怎样把C语言转换成单片机汇编语言
回答:右击C文件,进入“options for files '**.C' ”勾选这两项,再编译就会出现一个"*.src"的文件,这就是C语言的汇编文件了。自己操作一下就会的,加油,还有,当有汇编和C语言混合编程时也要选这两项。

求51单片机译码程序汇编的。
B BIT P3.1 C BIT P3.2 Y0 BIT P1.0 Y1 BIT P1.1 Y2 BIT P1.2 Y3 BIT P1.3 Y4 BIT P1.4 Y5

C语言写的程序 怎么反汇编成汇编语言
在keilc中,单片机的C语言程序可以再DEBUG模式中得到对应的汇编程序。步骤如下:1、建立工程,导入C文件代码,编译生成hex文件。2、按CTRL+F5或者点击菜单Debug--Start\/Stop Debug Session 3、点击View--Disassembly Window调出汇编窗口,如上图。通过以上步骤就可以看到与C对应的汇编程序了。

急求:单片机MS-51,用汇编语言编写程序的问题. 高手的高分,谢谢,
实际上,不是255对应900,而是256对应900。那么:900 \/ 256 = 3.515 把0.015忽略,由此产生的误差,小于百分之一。那么,全部使用整数的运算,有:(0~255) * 35 = (0~8925)显示的时候,只是显示前3位,即可。--- 用8位的AD转换器,精度就是这样了,和算法无关。为了提高精度,应该采用分辨...

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单片机,怎么用汇编语言编程一个程序。实现4个按键控制4种报警声音(1...
没有四种声音的频率库,其他的给你做个示范吧:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV SP,#5FH MOV TMOD,#11H SETB EA SETB ET0 SETB ET1 LOOP:LCALL KEYSCAN MOV A,R2 JNZ LP1 MOV DPTR,#TAB110 SJMP LPRUN LP1:DEC A JNZ LP2 MOV DPTR,#TAB119 SJMP LPRUN LP2:DEC A JNZ ...

单片机源代码C语言怎么转化回汇编语言啊,就是带MOV,JMP的种
CLR C MOV A, 0BH SUBB A, #14H MOV A, 0AH SUBB A, #00H JNC L0052H MOV R7, #01H SJMP L0054H L0052H:MOV R7, #00H L0054H:JB 0B0H.1, L005BH MOV R6, #01H SJMP L005DH L005BH:MOV R6, #00H L005DH:MOV A, R7 ANL A, R6 JZ L008CH MOV R3, #0F5H ...

请问用C语言和汇编编51单片机有什么不同?
由于编译器的问题,c语言的效率一般要比汇编低一些,但是开发速度也快很多。C在可移植性及可读性上明显好于汇编。介绍个好的地方给你啊,我经常去上面看看,学到了不少的东西,http:\/\/group.ednchina.com\/304\/这是网址,里面的人都挺热心,都是51单片机这块的人,希望对你会有帮助啊 ...

相似回答