标题: 求大佬告知把C语言程序转成汇编语言的方法 [打印本页]

作者: yulexuan2019    时间: 2019-5-12 19:06
标题: 求大佬告知把C语言程序转成汇编语言的方法
C语言程序如图,实在是不会转汇编,求大佬帮忙指点思路,想自己搞定

//12M晶振。4位共阴数码管,P0 段码,P2.0~P2.3 位控
//显示 00.00~99.99  
//2011 07 07   E:\DPJ_C\00.00\00.00.c

#include <reg51.h>
#define uchar unsigned char
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;

sbit P27=P0^7;
sbit KS=P1^0; //开始
sbit KR=P1^1; //复位

uchar time,xs,ge,shi,bai,qian;
uchar code tab[ ]=        {        
                                        0x3F,/*0*/
                                0x06,/*1*/
                                0x5B,/*2*/
                                0x4F,/*3*/
                                0x66,/*4*/
                                0x6D,/*5*/
                                0x7D,/*6*/
                                0x07,/*7*/
                                0x7F,/*8*/
                                0x6F,/*9*/
                                        };

void delay_ms(unsigned int ms)  //1ms延时
{
           uchar a;
           while(ms--)
        for(a=123;a>0;a--);
}

void display();

void T0intinit( )        //定时器T0初始化
{
        TMOD=0x01;
        TH0=(65536-10000)/256;       //10ms定时
        TL0=(65536-10000)%256;
        EA=1;
        ET0=1;
}

void main()
{         
        T0intinit( );
        while(1)
        {         
                display( );
                while(!KS)            //开始/暂停 键
                {           
                        display( );
                        if(KS)
                        TR0=!TR0;
                }
               
                while(!KR)         //清零键
                {
                        display( );
                        if(KR)
                        TR0=0;
                        qian=0;
                        bai=0;
                        shi=0;
                        ge=0;
                }
                if(bai==10)
                {
                        bai=0;
                        qian++;
                }
                if(qian==10)
                {
                        qian=0;
                        TR0=0;
                }
        }
}


void display( )
{
        P23=0;
        P0=tab[ge];
        delay_ms(1);
        P23=1;
        P22=0;
        P0=tab[shi];
        delay_ms(1);
        P22=1;
        P21=0;
        P0=tab[bai]|0x80;
        delay_ms(1);
        P21=1;
        P20=0;
        P0=tab[qian];
        delay_ms(1);
        P20=1;
}

void T0int( ) interrupt 1 //定时器T0中断 方式1
{
        TH0=(65536-10000)/256;       //重装10ms定时常数
        TL0=(65536-10000)%256;
        ge++;
                if(ge==10)
                {
                        ge=0;
                        shi++;
                }
                if(shi==10)
                {
                        shi=0;
                        bai++;
                }
}


实在是不会

Snipaste_2019-05-12_19-04-46.png (43.98 KB, 下载次数: 67)

Snipaste_2019-05-12_19-04-46.png

作者: 18792791321    时间: 2019-5-12 23:29
1、完全手工根据C语言的流程和目的,改编成汇编语言,这样做工作量很大  2、利用仿真软件,在仿真环境下,是有相应的汇编代码的,这样做工作量相对较小,但可读性较差。
作者: 胖胖的郭sir    时间: 2019-5-13 01:08
用keil里仿真的时候会有一个窗口显示汇编程序
作者: yzwzfyz    时间: 2019-5-13 08:19
KEIL中自动生成的“.asm”文件就是。
作者: yulexuan2019    时间: 2019-5-15 00:07
18792791321 发表于 2019-5-12 23:29
1、完全手工根据C语言的流程和目的,改编成汇编语言,这样做工作量很大  2、利用仿真软件,在仿真环境下, ...

感谢大佬回复,实在不会
作者: 酸葡萄    时间: 2019-5-15 18:05
keil可以直接编译,有一个编译窗口
作者: 1250570910    时间: 2019-5-15 22:58
用keil就可以,软件直接编译通过,在DEBUG中有反汇编的窗口,你可以去看看
作者: Kritolv    时间: 2019-5-16 19:15
keil中有转成“asm”的功能
作者: 2420429794    时间: 2019-12-16 23:55
Kritolv 发表于 2019-5-16 19:15
keil中有转成“asm”的功能

能不能发一下具体过程,先谢谢啦
作者: 啊llllll    时间: 2019-12-17 15:20
用keil中的DEBUG命令会有对应的汇编语言
作者: xxxxyyyy    时间: 2019-12-17 15:31
KEIL中生成的.asm文件打开看就是了。
作者: fastion    时间: 2019-12-17 16:01
编译后,你可以.O或ASM,等文件中找到对应的汇编文件。现在少用了,具体的文件你自己找了,通常有相对应的,
作者: 5555666655    时间: 2019-12-17 16:24
keil中有直接编译

作者: 啦啦啦123321    时间: 2019-12-30 22:20
keil中有转asm的功能,软件运行程序的时候自动生吧
作者: 1332112623    时间: 2020-1-1 18:07
keil中有转成“asm”的功能,打开看一下就行了
作者: 无敌小杰杰    时间: 2020-1-2 17:31
希望对你有帮助!
keil怎样把C语言转换成单片机汇编语言_百度知道 https://zhidao.baidu.com/question/548559856.html




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1