找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 12218|回復(fù): 15
收起左側(cè)

求大佬告知把C語言程序轉(zhuǎn)成匯編語言的方法

  [復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 20 黑幣 回復(fù)本帖可獲得 20 黑幣獎(jiǎng)勵(lì)! 每人限 2 次(中獎(jiǎng)概率 70%)
ID:535873 發(fā)表于 2019-5-12 19:06 | 顯示全部樓層 |閱讀模式
C語言程序如圖,實(shí)在是不會(huì)轉(zhuǎn)匯編,求大佬幫忙指點(diǎn)思路,想自己搞定

//12M晶振。4位共陰數(shù)碼管,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; //復(fù)位

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延時(shí)
{
           uchar a;
           while(ms--)
        for(a=123;a>0;a--);
}

void display();

void T0intinit( )        //定時(shí)器T0初始化
{
        TMOD=0x01;
        TH0=(65536-10000)/256;       //10ms定時(shí)
        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 //定時(shí)器T0中斷 方式1
{
        TH0=(65536-10000)/256;       //重裝10ms定時(shí)常數(shù)
        TL0=(65536-10000)%256;
        ge++;
                if(ge==10)
                {
                        ge=0;
                        shi++;
                }
                if(shi==10)
                {
                        shi=0;
                        bai++;
                }
}


實(shí)在是不會(huì)
Snipaste_2019-05-12_19-04-46.png
回復(fù)

使用道具 舉報(bào)

ID:374028 發(fā)表于 2019-5-12 23:29 | 顯示全部樓層
1、完全手工根據(jù)C語言的流程和目的,改編成匯編語言,這樣做工作量很大  2、利用仿真軟件,在仿真環(huán)境下,是有相應(yīng)的匯編代碼的,這樣做工作量相對(duì)較小,但可讀性較差。
回復(fù)

使用道具 舉報(bào)

ID:405797 發(fā)表于 2019-5-13 01:08 | 顯示全部樓層
用keil里仿真的時(shí)候會(huì)有一個(gè)窗口顯示匯編程序
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2019-5-13 08:19 | 顯示全部樓層
KEIL中自動(dòng)生成的“.asm”文件就是。
回復(fù)

使用道具 舉報(bào)

ID:535873 發(fā)表于 2019-5-15 00:07 | 顯示全部樓層
18792791321 發(fā)表于 2019-5-12 23:29
1、完全手工根據(jù)C語言的流程和目的,改編成匯編語言,這樣做工作量很大  2、利用仿真軟件,在仿真環(huán)境下, ...

感謝大佬回復(fù),實(shí)在不會(huì)
回復(fù)

使用道具 舉報(bào)

ID:537018 發(fā)表于 2019-5-15 18:05 | 顯示全部樓層
keil可以直接編譯,有一個(gè)編譯窗口
回復(fù)

使用道具 舉報(bào)

ID:539402 發(fā)表于 2019-5-15 22:58 | 顯示全部樓層
用keil就可以,軟件直接編譯通過,在DEBUG中有反匯編的窗口,你可以去看看
回復(fù)

使用道具 舉報(bào)

ID:536759 發(fā)表于 2019-5-16 19:15 | 顯示全部樓層
keil中有轉(zhuǎn)成“asm”的功能
回復(fù)

使用道具 舉報(bào)

ID:554547 發(fā)表于 2019-12-16 23:55 | 顯示全部樓層
Kritolv 發(fā)表于 2019-5-16 19:15
keil中有轉(zhuǎn)成“asm”的功能

能不能發(fā)一下具體過程,先謝謝啦
回復(fù)

使用道具 舉報(bào)

ID:643271 發(fā)表于 2019-12-17 15:20 來自觸屏版 | 顯示全部樓層
用keil中的DEBUG命令會(huì)有對(duì)應(yīng)的匯編語言
回復(fù)

使用道具 舉報(bào)

ID:666358 發(fā)表于 2019-12-17 15:31 | 顯示全部樓層
KEIL中生成的.asm文件打開看就是了。
回復(fù)

使用道具 舉報(bào)

ID:439047 發(fā)表于 2019-12-17 16:01 | 顯示全部樓層
編譯后,你可以.O或ASM,等文件中找到對(duì)應(yīng)的匯編文件,F(xiàn)在少用了,具體的文件你自己找了,通常有相對(duì)應(yīng)的,
回復(fù)

使用道具 舉報(bào)

ID:665863 發(fā)表于 2019-12-17 16:24 | 顯示全部樓層
keil中有直接編譯
回復(fù)

使用道具 舉報(bào)

ID:677920 發(fā)表于 2019-12-30 22:20 | 顯示全部樓層
keil中有轉(zhuǎn)asm的功能,軟件運(yùn)行程序的時(shí)候自動(dòng)生吧
回復(fù)

使用道具 舉報(bào)

ID:679004 發(fā)表于 2020-1-1 18:07 | 顯示全部樓層
keil中有轉(zhuǎn)成“asm”的功能,打開看一下就行了
回復(fù)

使用道具 舉報(bào)

ID:627214 發(fā)表于 2020-1-2 17:31 | 顯示全部樓層
希望對(duì)你有幫助!
keil怎樣把C語言轉(zhuǎn)換成單片機(jī)匯編語言_百度知道 https://zhidao.baidu.com/question/548559856.html
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表