找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3019|回复: 7
打印 上一主题 下一主题
收起左侧

如何将已经编好的C语言程序改写成汇编语言?

[复制链接]
跳转到指定楼层
楼主
400黑币
帮我把下面已经编好的C程序改写成汇编语言:
实现一下功能:
设计一个以单片机为核心的单词记忆测试器:
1、实现单词的录入(为使程序具有可演示性,单词不少于10个)。
2、单词用按键控制依次在屏幕上显示,按键选择认识还是不认识,也可以直接进入下一个或者上一个。实现所有单词的循环显示。
3、单词背完后给出正确率。(实时显示正确率,且对同一个单词确定不会重复增加正确率)
4、不认识时,警示灯亮。
Proteus图:
C程序:
#include <reg51.h>
#include <intrins.h>

sbit rs= P2^0;
sbit rw = P2^1;
sbit ep = P2^2;
sbit p10=0x90;
sbit p11=0x91;
sbit p12=0x92;
sbit p13=0x93;
sbit p24=0xA4;

unsigned char code dis1[12][9] = {"1","air","rice","tree","sea","hair","meat","he","she","good","nice"};
unsigned char code dis2[] = {"rate"};
unsigned char code dis3[11][9]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"};
unsigned int  bzw[13]={2,2,2,2,2,2,2,2,2,2,2,2,2};
void delay(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i< 250; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}

bit lcd_bz()
{
bit result;
rs = 0;
rw = 1;
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
result =(bit)(P0 & 0x80);
ep = 0;
return result;
}

void lcd_wcmd(unsigned char cmd)   //写指令
{
while(lcd_bz());//判断LCD是否忙碌
rs = 0;                                 
rw = 0;                   //re=0,rw=1        ;e为正脉冲
ep = 0;
_nop_();
_nop_();
P0 = cmd;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;           
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}

void lcd_pos(unsigned char pos)         //显示位置转换程序
{
lcd_wcmd(pos | 0x80);  //显示第一行的地址是0x08,第二行的是0xc0。
}

void lcd_wdat(unsigned char dat)   //写数据
{
while(lcd_bz());//判断LCD是否忙碌
rs = 1;
rw = 0;
ep = 0;
P0 = dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}

void lcd_init()         //初始化lcd
{
lcd_wcmd(0x38);
delay(1);
lcd_wcmd(0x0c);
delay(1);
lcd_wcmd(0x06);
delay(1);
lcd_wcmd(0x01);         //清屏
delay(1);
}

void main(void)
{
unsigned char i;
unsigned char k;
unsigned char count;
unsigned char a;
unsigned char j;
lcd_init();// 初始化LCD
delay(10);j=0;
i=1;
while(1){
delay(60);
lcd_wcmd(0x01);//清屏指令,防止单词由长到短时出现乱码.
delay(1);
P1=0x00;         j=0;
lcd_pos(0x01);//设置显示位置

        if(P1!=0)
        {
                switch(P1)                //P1 扫行
                        {
                        case (0x01):
                        if(bzw[ i]==2)
                         { count++;
                         bzw[ i]=bzw[ i]-1; //标志位,每个单词只能使count加1.
                         if(bzw[ i]<2)
                         bzw[ i]=1;
                        } i++ ;
                        break;//sure
                        case (0x02):i++;j++;
                        bzw[ i]=2;break;                                    //unknown
                    case (0x04):i--;break;                                    //up
                        case (0x08):i++;break;                                     //down


                        }        }
p24=0;
if(j==1)               
p24=1;            
if(i==11) i=1;
if(i==0) i=10;
while(dis1[ i][k]!= '\0')
{
lcd_wdat(dis1[ i][k]);//单词
k++;
}k=0;
lcd_pos(0x42);// 设置显示位置
a = 0;
while(dis2[a] != '\0')
{
lcd_wdat(dis2[a]);// rate
a++;
}
if(count>10) count=10;
lcd_pos(0x48);
while(dis3[count][k]!= '\0')
{
lcd_wdat(dis3[count][k]);//正确率
k++;
}k=0;
}
}  


附1
/*--------------------------------------------------------------------------
REG51.H

Header file for generic 80C51 and 80C31 microcontroller.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/

#ifndef __REG51_H__
#define __REG51_H__

/*  BYTE Register  */
sfr P0   = 0x80;
sfr P1   = 0x90;
sfr P2   = 0xA0;
sfr P3   = 0xB0;
sfr PSW  = 0xD0;
sfr ACC  = 0xE0;
sfr B    = 0xF0;
sfr SP   = 0x81;
sfr DPL  = 0x82;
sfr DPH  = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0  = 0x8A;
sfr TL1  = 0x8B;
sfr TH0  = 0x8C;
sfr TH1  = 0x8D;
sfr IE   = 0xA8;
sfr IP   = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;


/*  BIT Register  */
/*  PSW   */
sbit CY   = 0xD7;
sbit AC   = 0xD6;
sbit F0   = 0xD5;
sbit RS1  = 0xD4;
sbit RS0  = 0xD3;
sbit OV   = 0xD2;
sbit P    = 0xD0;

/*  TCON  */
sbit TF1  = 0x8F;
sbit TR1  = 0x8E;
sbit TF0  = 0x8D;
sbit TR0  = 0x8C;
sbit IE1  = 0x8B;
sbit IT1  = 0x8A;
sbit IE0  = 0x89;
sbit IT0  = 0x88;

/*  IE   */
sbit EA   = 0xAF;
sbit ES   = 0xAC;
sbit ET1  = 0xAB;
sbit EX1  = 0xAA;
sbit ET0  = 0xA9;
sbit EX0  = 0xA8;

/*  IP   */
sbit PS   = 0xBC;
sbit PT1  = 0xBB;
sbit PX1  = 0xBA;
sbit PT0  = 0xB9;
sbit PX0  = 0xB8;

/*  P3  */
sbit RD   = 0xB7;
sbit WR   = 0xB6;
sbit T1   = 0xB5;
sbit T0   = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD  = 0xB1;
sbit RXD  = 0xB0;

/*  SCON  */
sbit SM0  = 0x9F;
sbit SM1  = 0x9E;
sbit SM2  = 0x9D;
sbit REN  = 0x9C;
sbit TB8  = 0x9B;
sbit RB8  = 0x9A;
sbit TI   = 0x99;
sbit RI   = 0x98;

#endif


附2
/*--------------------------------------------------------------------------
INTRINS.H

Intrinsic functions for C51.
Copyright (c) 1988-2004 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/

#ifndef __INTRINS_H__
#define __INTRINS_H__

extern void          _nop_     (void);
extern bit           _testbit_ (bit);
extern unsigned char _cror_    (unsigned char, unsigned char);
extern unsigned int  _iror_    (unsigned int,  unsigned char);
extern unsigned long _lror_    (unsigned long, unsigned char);
extern unsigned char _crol_    (unsigned char, unsigned char);
extern unsigned int  _irol_    (unsigned int,  unsigned char);
extern unsigned long _lrol_    (unsigned long, unsigned char);
extern unsigned char _chkfloat_(float);
extern void          _push_    (unsigned char _sfr);
extern void          _pop_     (unsigned char _sfr);

#endif

N]}QZQTS_$T$C]L_[Q_(R{C.png (71.52 KB, 下载次数: 17)

N]}QZQTS_$T$C]L_[Q_(R{C.png

程序及图.zip

98.94 KB, 下载次数: 3

最佳答案

查看完整内容

; .\123\main.SRC generated from: 123\main.c ; COMPILER INVOKED BY: ; C:\Keil\C51\BIN\C51.EXE 123\main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\main.lst) SRC(.\123\main.SRC) $NOMOD51 NAME MAIN P0 DATA 080H P1 DATA 090H P2 DATA 0A0H P3 DATA 0B0H T0 BIT 0B0H.4 AC BIT 0D0H.6 T1 BIT 0B0H.5 EA BIT 0A8H.7 IE DATA 0A8H RD BIT 0B0H.7 ES BIT 0A8H.4 IP DATA 0B8H RI BIT 098H.0 INT0 B ...
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:450849 发表于 2020-6-2 10:24 | 只看该作者
; .\123\main.SRC generated from: 123\main.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.EXE 123\main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\main.lst) SRC(.\123\main.SRC)

$NOMOD51

NAME        MAIN

P0        DATA        080H
P1        DATA        090H
P2        DATA        0A0H
P3        DATA        0B0H
T0        BIT        0B0H.4
AC        BIT        0D0H.6
T1        BIT        0B0H.5
EA        BIT        0A8H.7
IE        DATA        0A8H
RD        BIT        0B0H.7
ES        BIT        0A8H.4
IP        DATA        0B8H
RI        BIT        098H.0
INT0        BIT        0B0H.2
CY        BIT        0D0H.7
TI        BIT        098H.1
INT1        BIT        0B0H.3
PS        BIT        0B8H.4
SP        DATA        081H
OV        BIT        0D0H.2
WR        BIT        0B0H.6
SBUF        DATA        099H
PCON        DATA        087H
SCON        DATA        098H
TMOD        DATA        089H
TCON        DATA        088H
IE0        BIT        088H.1
IE1        BIT        088H.3
B        DATA        0F0H
ACC        DATA        0E0H
ET0        BIT        0A8H.1
ET1        BIT        0A8H.3
TF0        BIT        088H.5
TF1        BIT        088H.7
RB8        BIT        098H.2
TH0        DATA        08CH
EX0        BIT        0A8H.0
IT0        BIT        088H.0
TH1        DATA        08DH
TB8        BIT        098H.3
EX1        BIT        0A8H.2
IT1        BIT        088H.2
P        BIT        0D0H.0
SM0        BIT        098H.7
TL0        DATA        08AH
p10        BIT        090H.0
SM1        BIT        098H.6
TL1        DATA        08BH
p11        BIT        090H.1
SM2        BIT        098H.5
p12        BIT        090H.2
p13        BIT        090H.3
PT0        BIT        0B8H.1
ep        BIT        0A0H.2
PT1        BIT        0B8H.3
RS0        BIT        0D0H.3
p24        BIT        0A0H.4
TR0        BIT        088H.4
RS1        BIT        0D0H.4
TR1        BIT        088H.6
PX0        BIT        0B8H.0
PX1        BIT        0B8H.2
DPH        DATA        083H
DPL        DATA        082H
rs        BIT        0A0H.0
REN        BIT        098H.4
rw        BIT        0A0H.1
RXD        BIT        0B0H.0
TXD        BIT        0B0H.1
F0        BIT        0D0H.5
PSW        DATA        0D0H
?PR?_delay?MAIN      SEGMENT CODE
?PR?lcd_bz?MAIN      SEGMENT CODE
?BI?lcd_bz?MAIN      SEGMENT BIT OVERLAYABLE
?PR?_lcd_wcmd?MAIN   SEGMENT CODE
?PR?_lcd_pos?MAIN    SEGMENT CODE
?PR?_lcd_wdat?MAIN   SEGMENT CODE
?PR?lcd_init?MAIN    SEGMENT CODE
?PR?main?MAIN        SEGMENT CODE
?DT?main?MAIN        SEGMENT DATA OVERLAYABLE
?C_INITSEG           SEGMENT CODE
?CO?MAIN             SEGMENT CODE
?DT?MAIN             SEGMENT DATA
        EXTRN        CODE (?C_STARTUP)
        PUBLIC        bzw
        PUBLIC        dis3
        PUBLIC        dis2
        PUBLIC        dis1
        PUBLIC        main
        PUBLIC        lcd_init
        PUBLIC        _lcd_wdat
        PUBLIC        _lcd_pos
        PUBLIC        _lcd_wcmd
        PUBLIC        lcd_bz
        PUBLIC        _delay

        RSEG  ?DT?main?MAIN
?main?BYTE:
          j?650:   DS   1

        RSEG  ?BI?lcd_bz?MAIN
?lcd_bz?BIT:
     result?142:   DBIT   1

        RSEG  ?DT?MAIN
            bzw:   DS   26

        RSEG  ?CO?MAIN
dis1:
        DB  '1' ,000H

        DB  000H,000H,000H,000H,000H,000H,000H

        DB  'a' ,'i' ,'r' ,000H

        DB  000H,000H,000H,000H,000H

        DB  'r' ,'i' ,'c' ,'e' ,000H

        DB  000H,000H,000H,000H

        DB  't' ,'r' ,'e' ,'e' ,000H

        DB  000H,000H,000H,000H

        DB  's' ,'e' ,'a' ,000H

        DB  000H,000H,000H,000H,000H

        DB  'h' ,'a' ,'i' ,'r' ,000H

        DB  000H,000H,000H,000H

        DB  'm' ,'e' ,'a' ,'t' ,000H

        DB  000H,000H,000H,000H

        DB  'h' ,'e' ,000H

        DB  000H,000H,000H,000H,000H,000H

        DB  's' ,'h' ,'e' ,000H

        DB  000H,000H,000H,000H,000H

        DB  'g' ,'o' ,'o' ,'d' ,000H

        DB  000H,000H,000H,000H

        DB  'n' ,'i' ,'c' ,'e' ,000H

        DB  000H,000H,000H,000H

        DB  000H,000H,000H,000H,000H,000H,000H,000H,000H


dis2:
        DB  'r' ,'a' ,'t' ,'e' ,000H


dis3:
        DB  '0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H,000H

        DB  '1' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H

        DB  '2' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H

        DB  '3' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H

        DB  '4' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H

        DB  '5' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H

        DB  '6' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H

        DB  '7' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H

        DB  '8' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H

        DB  '9' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H,000H

        DB  '1' ,'0' ,'0' ,'%' ,000H

        DB  000H,000H,000H,000H



        RSEG  ?C_INITSEG
        DB        01AH
        DB        bzw
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H
        DW        00002H

;
; //#include <reg51.h>
;
;
;
; #ifndef __REG51_H__
; #define __REG51_H__
;
; /*  BYTE Register  */
; sfr P0   = 0x80;
; sfr P1   = 0x90;
; sfr P2   = 0xA0;
; sfr P3   = 0xB0;
; sfr PSW  = 0xD0;
; sfr ACC  = 0xE0;
; sfr B    = 0xF0;
; sfr SP   = 0x81;
; sfr DPL  = 0x82;
; sfr DPH  = 0x83;
; sfr PCON = 0x87;
; sfr TCON = 0x88;
; sfr TMOD = 0x89;
; sfr TL0  = 0x8A;
; sfr TL1  = 0x8B;
; sfr TH0  = 0x8C;
; sfr TH1  = 0x8D;
; sfr IE   = 0xA8;
; sfr IP   = 0xB8;
; sfr SCON = 0x98;
; sfr SBUF = 0x99;
;
;
; /*  BIT Register  */
; /*  PSW   */
; sbit CY   = 0xD7;
; sbit AC   = 0xD6;
; sbit F0   = 0xD5;
; sbit RS1  = 0xD4;
; sbit RS0  = 0xD3;
; sbit OV   = 0xD2;
; sbit P    = 0xD0;
;
; /*  TCON  */
; sbit TF1  = 0x8F;
; sbit TR1  = 0x8E;
; sbit TF0  = 0x8D;
; sbit TR0  = 0x8C;
; sbit IE1  = 0x8B;
; sbit IT1  = 0x8A;
; sbit IE0  = 0x89;
; sbit IT0  = 0x88;
;
; /*  IE   */
; sbit EA   = 0xAF;
; sbit ES   = 0xAC;
; sbit ET1  = 0xAB;
; sbit EX1  = 0xAA;
; sbit ET0  = 0xA9;
; sbit EX0  = 0xA8;
;
; /*  IP   */
; sbit PS   = 0xBC;
; sbit PT1  = 0xBB;
; sbit PX1  = 0xBA;
; sbit PT0  = 0xB9;
; sbit PX0  = 0xB8;
;
; /*  P3  */
; sbit RD   = 0xB7;
; sbit WR   = 0xB6;
; sbit T1   = 0xB5;
; sbit T0   = 0xB4;
; sbit INT1 = 0xB3;
; sbit INT0 = 0xB2;
; sbit TXD  = 0xB1;
; sbit RXD  = 0xB0;
;
; /*  SCON  */
; sbit SM0  = 0x9F;
; sbit SM1  = 0x9E;
; sbit SM2  = 0x9D;
; sbit REN  = 0x9C;
; sbit TB8  = 0x9B;
; sbit RB8  = 0x9A;
; sbit TI   = 0x99;
; sbit RI   = 0x98;
;
; #endif
;
;
;
;
; #include <intrins.h>
;
; sbit rs= P2^0;
; sbit rw = P2^1;
; sbit ep = P2^2;
; sbit p10=0x90;
; sbit p11=0x91;
; sbit p12=0x92;
; sbit p13=0x93;
; sbit p24=0xA4;
;
; unsigned char code dis1[12][9] = {"1","air","rice","tree","sea","hair","meat","he","she","good","nice"};
; unsigned char code dis2[] = {"rate"};
; unsigned char code dis3[11][9]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"};
; unsigned int  bzw[13]={2,2,2,2,2,2,2,2,2,2,2,2,2};
; void delay(unsigned char ms)

        RSEG  ?PR?_delay?MAIN
_delay:
        USING        0
                        ; SOURCE LINE # 108
;---- Variable 'i?041' assigned to Register 'R6' ----
;---- Variable 'ms?040' assigned to Register 'R7' ----
; {
                        ; SOURCE LINE # 109
?C0001:
; unsigned char i;
; while(ms--)
                        ; SOURCE LINE # 111
        MOV          R5,AR7
        DEC          R7
        MOV          A,R5
        JZ           ?C0006
; {
                        ; SOURCE LINE # 112
; for(i = 0; i< 250; i++)
                        ; SOURCE LINE # 113
        CLR          A
        MOV          R6,A
?C0003:
        MOV          A,R6
        CLR          C
        SUBB         A,#0FAH
        MOV          A,#080H
        SUBB         A,#080H
        JNC          ?C0001
; {
                        ; SOURCE LINE # 114
; _nop_();
                        ; SOURCE LINE # 115
        NOP         
; _nop_();
                        ; SOURCE LINE # 116
        NOP         
; _nop_();
                        ; SOURCE LINE # 117
        NOP         
; _nop_();
                        ; SOURCE LINE # 118
        NOP         
; }
                        ; SOURCE LINE # 119
        INC          R6
        SJMP         ?C0003
; }
                        ; SOURCE LINE # 120
; }
                        ; SOURCE LINE # 121
?C0006:
        RET         
; END OF _delay

;
; bit lcd_bz()

        RSEG  ?PR?lcd_bz?MAIN
lcd_bz:
                        ; SOURCE LINE # 123
; {
                        ; SOURCE LINE # 124
; bit result;
; rs = 0;
                        ; SOURCE LINE # 126
        CLR          rs
; rw = 1;
                        ; SOURCE LINE # 127
        SETB         rw
; ep = 1;
                        ; SOURCE LINE # 128
        SETB         ep
; _nop_();
                        ; SOURCE LINE # 129
        NOP         
; _nop_();
                        ; SOURCE LINE # 130
        NOP         
; _nop_();
                        ; SOURCE LINE # 131
        NOP         
; _nop_();
                        ; SOURCE LINE # 132
        NOP         
; result =(bit)(P0 & 0x80);
                        ; SOURCE LINE # 133
        MOV          A,P0
        RLC          A
        MOV          result?142,C
; ep = 0;
                        ; SOURCE LINE # 134
        CLR          ep
; return result;
                        ; SOURCE LINE # 135
        MOV          C,result?142
; }
                        ; SOURCE LINE # 136
        RET         
; END OF lcd_bz

;
; void lcd_wcmd(unsigned char cmd)   //写指令

        RSEG  ?PR?_lcd_wcmd?MAIN
_lcd_wcmd:
                        ; SOURCE LINE # 138
;---- Variable 'cmd?243' assigned to Register 'R7' ----
; {
                        ; SOURCE LINE # 139
?C0008:
; while(lcd_bz());//判断LCD是否忙碌
                        ; SOURCE LINE # 140
        LCALL        lcd_bz
        JC           ?C0008
; rs = 0;                                 
                        ; SOURCE LINE # 141
        CLR          rs
; rw = 0;                   //re=0,rw=1        ;e为正脉冲
                        ; SOURCE LINE # 142
        CLR          rw
; ep = 0;
                        ; SOURCE LINE # 143
        CLR          ep
; _nop_();
                        ; SOURCE LINE # 144
        NOP         
; _nop_();
                        ; SOURCE LINE # 145
        NOP         
; P0 = cmd;
                        ; SOURCE LINE # 146
        MOV          P0,R7
; _nop_();
                        ; SOURCE LINE # 147
        NOP         
; _nop_();
                        ; SOURCE LINE # 148
        NOP         
; _nop_();
                        ; SOURCE LINE # 149
        NOP         
; _nop_();
                        ; SOURCE LINE # 150
        NOP         
; ep = 1;           
                        ; SOURCE LINE # 151
        SETB         ep
; _nop_();
                        ; SOURCE LINE # 152
        NOP         
; _nop_();
                        ; SOURCE LINE # 153
        NOP         
; _nop_();
                        ; SOURCE LINE # 154
        NOP         
; _nop_();
                        ; SOURCE LINE # 155
        NOP         
; ep = 0;
                        ; SOURCE LINE # 156
        CLR          ep
; }
                        ; SOURCE LINE # 157
        RET         
; END OF _lcd_wcmd

;
; void lcd_pos(unsigned char pos)         //显示位置转换程序

        RSEG  ?PR?_lcd_pos?MAIN
_lcd_pos:
        USING        0
                        ; SOURCE LINE # 159
;---- Variable 'pos?344' assigned to Register 'R7' ----
; {
                        ; SOURCE LINE # 160
; lcd_wcmd(pos | 0x80);  //显示第一行的地址是0x08,第二行的是0xc0。
                        ; SOURCE LINE # 161
        MOV          A,R7
        ORL          A,#080H
        MOV          R7,A
        LJMP         _lcd_wcmd
; END OF _lcd_pos

; }
;
; void lcd_wdat(unsigned char dat)   //写数据

        RSEG  ?PR?_lcd_wdat?MAIN
_lcd_wdat:
                        ; SOURCE LINE # 164
;---- Variable 'dat?445' assigned to Register 'R7' ----
; {
                        ; SOURCE LINE # 165
?C0012:
; while(lcd_bz());//判断LCD是否忙碌
                        ; SOURCE LINE # 166
        LCALL        lcd_bz
        JC           ?C0012
; rs = 1;
                        ; SOURCE LINE # 167
        SETB         rs
; rw = 0;
                        ; SOURCE LINE # 168
        CLR          rw
; ep = 0;
                        ; SOURCE LINE # 169
        CLR          ep
; P0 = dat;
                        ; SOURCE LINE # 170
        MOV          P0,R7
; _nop_();
                        ; SOURCE LINE # 171
        NOP         
; _nop_();
                        ; SOURCE LINE # 172
        NOP         
; _nop_();
                        ; SOURCE LINE # 173
        NOP         
; _nop_();
                        ; SOURCE LINE # 174
        NOP         
; ep = 1;
                        ; SOURCE LINE # 175
        SETB         ep
; _nop_();
                        ; SOURCE LINE # 176
        NOP         
; _nop_();
                        ; SOURCE LINE # 177
        NOP         
; _nop_();
                        ; SOURCE LINE # 178
        NOP         
; _nop_();
                        ; SOURCE LINE # 179
        NOP         
; ep = 0;
                        ; SOURCE LINE # 180
        CLR          ep
; }
                        ; SOURCE LINE # 181
        RET         
; END OF _lcd_wdat

;
; void lcd_init()         //初始化lcd

        RSEG  ?PR?lcd_init?MAIN
lcd_init:
        USING        0
                        ; SOURCE LINE # 183
; {
                        ; SOURCE LINE # 184
; lcd_wcmd(0x38);
                        ; SOURCE LINE # 185
        MOV          R7,#038H
        LCALL        _lcd_wcmd
; delay(1);
                        ; SOURCE LINE # 186
        MOV          R7,#01H
        LCALL        _delay
; lcd_wcmd(0x0c);
                        ; SOURCE LINE # 187
        MOV          R7,#0CH
        LCALL        _lcd_wcmd
; delay(1);
                        ; SOURCE LINE # 188
        MOV          R7,#01H
        LCALL        _delay
; lcd_wcmd(0x06);
                        ; SOURCE LINE # 189
        MOV          R7,#06H
        LCALL        _lcd_wcmd
; delay(1);
                        ; SOURCE LINE # 190
        MOV          R7,#01H
        LCALL        _delay
; lcd_wcmd(0x01);         //清屏
                        ; SOURCE LINE # 191
        MOV          R7,#01H
        LCALL        _lcd_wcmd
; delay(1);
                        ; SOURCE LINE # 192
        LJMP         _delay
; END OF lcd_init

; }
;
; void main(void)

        RSEG  ?PR?main?MAIN
main:
        USING        0
                        ; SOURCE LINE # 195
;---- Variable 'k?647' assigned to Register 'R4' ----
;---- Variable 'count?648' assigned to Register 'R1' ----
; {
                        ; SOURCE LINE # 196
; unsigned char i;
; unsigned char k;
; unsigned char count;
; unsigned char a;
; unsigned char j;
; lcd_init();// 初始化LCD
                        ; SOURCE LINE # 202
        LCALL        lcd_init
; delay(10);j=0;
                        ; SOURCE LINE # 203
        MOV          R7,#0AH
        LCALL        _delay
        CLR          A
        MOV          j?650,A
; i=1;
                        ; SOURCE LINE # 204
;---- Variable 'i?646' assigned to Register 'R3' ----
        MOV          R3,#01H
?C0016:
; while(1){
                        ; SOURCE LINE # 205
; delay(60);
                        ; SOURCE LINE # 206
        MOV          R7,#03CH
        LCALL        _delay
; lcd_wcmd(0x01);//清屏指令,防止单词由长到短时出现乱码.
                        ; SOURCE LINE # 207
        MOV          R7,#01H
        LCALL        _lcd_wcmd
; delay(1);
                        ; SOURCE LINE # 208
        LCALL        _delay
; P1=0x00;         j=0;
                        ; SOURCE LINE # 209
        CLR          A
        MOV          P1,A
        MOV          j?650,A
; lcd_pos(0x01);//设置显示位置
                        ; SOURCE LINE # 210
        MOV          R7,#01H
        LCALL        _lcd_pos
;
;         if(P1!=0)
                        ; SOURCE LINE # 212
        MOV          R7,P1
        MOV          A,R7
        JZ           ?C0018
;         {
                        ; SOURCE LINE # 213
;                 switch(P1)                //P1 扫行
                        ; SOURCE LINE # 214
        MOV          R7,P1
        MOV          A,R7
        ADD          A,#0FEH
        JZ           ?C0023
        ADD          A,#0FEH
        JZ           ?C0024
        ADD          A,#0FCH
        JZ           ?C0025
        ADD          A,#07H
        JNZ          ?C0018
;                         {
                        ; SOURCE LINE # 215
;                         case (0x01):
                        ; SOURCE LINE # 216
?C0020:
;                         if(bzw[ i]==2)
                        ; SOURCE LINE # 217
        MOV          A,R3
        ADD          A,ACC
        ADD          A,#LOW (bzw)
        MOV          R0,A
        MOV          A,@R0
        MOV          R6,A
        INC          R0
        MOV          A,@R0
        XRL          A,#02H
        ORL          A,R6
        JNZ          ?C0021
;                          { count++;
                        ; SOURCE LINE # 218
        INC          R1
;                          bzw[ i]=bzw[ i]-1; //标志位,每个单词只能使count加1.
                        ; SOURCE LINE # 219
        MOV          A,R3
        ADD          A,ACC
        ADD          A,#LOW (bzw)
        MOV          R0,A
        INC          R0
        MOV          A,@R0
        DEC          @R0
        DEC          R0
        JNZ          ?C0037
        DEC          @R0
?C0037:
;                          if(bzw[ i]<2)
                        ; SOURCE LINE # 220
        MOV          A,R3
        ADD          A,ACC
        ADD          A,#LOW (bzw)
        MOV          R0,A
        MOV          A,@R0
        MOV          R6,A
        INC          R0
        MOV          A,@R0
        CLR          C
        SUBB         A,#02H
        MOV          A,R6
        SUBB         A,#00H
        JNC          ?C0021
;                          bzw[ i]=1;
                        ; SOURCE LINE # 221
        MOV          A,R3
        ADD          A,ACC
        ADD          A,#LOW (bzw)
        MOV          R0,A
        MOV          @R0,#00H
        INC          R0
        MOV          @R0,#01H
;                         } i++ ;
                        ; SOURCE LINE # 222
?C0021:
        INC          R3
;                         break;//sure
                        ; SOURCE LINE # 223
        SJMP         ?C0018
;                         case (0x02):i++;j++;
                        ; SOURCE LINE # 224
?C0023:
        INC          R3
        INC          j?650
;                         bzw[ i]=2;break;                                    //unknown
                        ; SOURCE LINE # 225
        MOV          A,R3
        ADD          A,ACC
        ADD          A,#LOW (bzw)
        MOV          R0,A
        MOV          @R0,#00H
        INC          R0
        MOV          @R0,#02H
        SJMP         ?C0018
;                     case (0x04):i--;break;                                    //up
                        ; SOURCE LINE # 226
?C0024:
        DEC          R3
        SJMP         ?C0018
;                         case (0x08):i++;break;                                     //down
                        ; SOURCE LINE # 227
?C0025:
        INC          R3
;
;
;                         }        }
                        ; SOURCE LINE # 230
?C0018:
; p24=0;
                        ; SOURCE LINE # 231
        CLR          p24
; if(j==1)               
                        ; SOURCE LINE # 232
        MOV          A,j?650
        XRL          A,#01H
        JNZ          ?C0026
; p24=1;            
                        ; SOURCE LINE # 233
        SETB         p24
?C0026:
; if(i==11) i=1;
                        ; SOURCE LINE # 234
        MOV          A,R3
        XRL          A,#0BH
        JNZ          ?C0027
        MOV          R3,#01H
?C0027:
; if(i==0) i=10;
                        ; SOURCE LINE # 235
        MOV          A,R3
        JNZ          ?C0029
        MOV          R3,#0AH
?C0029:
; while(dis1[ i][k]!= '\0')
                        ; SOURCE LINE # 236
        MOV          A,R3
        MOV          B,#09H
        MUL          AB
        ADD          A,#LOW (dis1)
        MOV          DPL,A
        CLR          A
        ADDC         A,#HIGH (dis1)
        MOV          DPH,A
        MOV          A,DPL
        ADD          A,R4
        MOV          DPL,A
        CLR          A
        ADDC         A,DPH
        MOV          DPH,A
        CLR          A
        MOVC         A,@A+DPTR
        MOV          R7,A
        JZ           ?C0030
; {
                        ; SOURCE LINE # 237
; lcd_wdat(dis1[ i][k]);//单词
                        ; SOURCE LINE # 238
        LCALL        _lcd_wdat
; k++;
                        ; SOURCE LINE # 239
        INC          R4
; }k=0;
                        ; SOURCE LINE # 240
        SJMP         ?C0029
?C0030:
        CLR          A
        MOV          R4,A
; lcd_pos(0x42);// 设置显示位置
                        ; SOURCE LINE # 241
        MOV          R7,#042H
        LCALL        _lcd_pos
; a = 0;
                        ; SOURCE LINE # 242
;---- Variable 'a?649' assigned to Register 'R6' ----
        CLR          A
        MOV          R6,A
?C0031:
; while(dis2[a] != '\0')
                        ; SOURCE LINE # 243
        MOV          A,R6
        MOV          DPTR,#dis2
        MOVC         A,@A+DPTR
        MOV          R7,A
        JZ           ?C0032
; {
                        ; SOURCE LINE # 244
; lcd_wdat(dis2[a]);// rate
                        ; SOURCE LINE # 245
        LCALL        _lcd_wdat
; a++;
                        ; SOURCE LINE # 246
        INC          R6
; }
                        ; SOURCE LINE # 247
        SJMP         ?C0031
?C0032:
; if(count>10) count=10;
                        ; SOURCE LINE # 248
        MOV          A,R1
        SETB         C
        SUBB         A,#0AH
        MOV          A,#080H
        SUBB         A,#080H
        JC           ?C0033
        MOV          R1,#0AH
?C0033:
; lcd_pos(0x48);
                        ; SOURCE LINE # 249
        MOV          R7,#048H
        LCALL        _lcd_pos
?C0034:
; while(dis3[count][k]!= '\0')
                        ; SOURCE LINE # 250
        MOV          A,R1
        MOV          B,#09H
        MUL          AB
        ADD          A,#LOW (dis3)
        MOV          DPL,A
        CLR          A
        ADDC         A,#HIGH (dis3)
        MOV          DPH,A
        MOV          A,DPL
        ADD          A,R4
        MOV          DPL,A
        CLR          A
        ADDC         A,DPH
        MOV          DPH,A
        CLR          A
        MOVC         A,@A+DPTR
        MOV          R7,A
        JZ           ?C0035
; {
                        ; SOURCE LINE # 251
; lcd_wdat(dis3[count][k]);//正确率
                        ; SOURCE LINE # 252
        LCALL        _lcd_wdat
; k++;
                        ; SOURCE LINE # 253
        INC          R4
; }k=0;
                        ; SOURCE LINE # 254
        SJMP         ?C0034
?C0035:
        CLR          A
        MOV          R4,A
; }
                        ; SOURCE LINE # 255
        LJMP         ?C0016
; END OF main

        END
回复

使用道具 举报

板凳
ID:123289 发表于 2020-6-2 21:34 | 只看该作者
汇编程序KELL会自动生成的,无需要人为改写。只是你不知道它在那里而矣。你找找吧。
回复

使用道具 举报

地板
ID:584814 发表于 2020-6-2 22:09 | 只看该作者
标记一下看看有木有后现代雷锋
回复

使用道具 举报

5#
ID:776149 发表于 2020-6-11 22:05 | 只看该作者
C语言在编译过程中确实会产生汇编.s文件,但那个很乱,机器读的,一看就不是汇编写的,我做过一个类似的程序,但这个工作量对我太大了,建议楼主还是去找汇编的程序,不过现在用汇编写的人很少了,就我读书的时候学过,
回复

使用道具 举报

6#
ID:401564 发表于 2020-6-12 08:38 | 只看该作者
在KEIL环境下运行仿真,自动生成汇编代码,全部复制就可以了
但你不一定能看得懂
回复

使用道具 举报

7#
ID:742508 发表于 2020-6-12 10:07 | 只看该作者
Q0000:        AJMP  Q016A                        ;0000   21 6A               NOP                                ;0002   00               NOP                                ;0003   00               NOP                                ;0004   00               NOP                                ;0005   00               NOP                                ;0006   00               NOP                                ;0007   00               NOP                                ;0008   00               NOP                                ;0009   00               NOP                                ;000A   00               NOP                                ;000B   00               NOP                                ;000C   00               NOP                                ;000D   00               NOP                                ;000E   00               NOP                                ;000F   00               NOP                                ;0010   00               NOP                                ;0011   00               NOP                                ;0012   00               NOP                                ;0013   00               NOP                                ;0014   00               NOP                                ;0015   00               NOP                                ;0016   00               NOP                                ;0017   00               NOP                                ;0018   00               NOP                                ;0019   00               NOP                                ;001A   00               NOP                                ;001B   00               NOP                                ;001C   00               NOP                                ;001D   00               NOP                                ;001E   00               NOP                                ;001F   00               NOP                                ;0020   00               NOP                                ;0021   00               NOP                                ;0022   00               NOP                                ;0023   00               NOP                                ;0024   00               NOP                                ;0025   00               NOP                                ;0026   00               NOP                                ;0027   00               NOP                                ;0028   00               NOP                                ;0029   00               NOP                                ;002A   00               NOP                                ;002B   00               NOP                                ;002C   00               NOP                                ;002D   00               NOP                                ;002E   00               NOP                                ;002F   00               NOP                                ;0030   00               NOP                                ;0031   00               NOP                                ;0032   00               NOP                                ;0033   00               NOP                                ;0034   00               NOP                                ;0035   00               NOP                                ;0036   00               NOP                                ;0037   00               NOP                                ;0038   00               NOP                                ;0039   00               NOP                                ;003A   00               NOP                                ;003B   00               NOP                                ;003C   00               NOP                                ;003D   00               NOP                                ;003E   00               NOP                                ;003F   00               NOP                                ;0040   00               NOP                                ;0041   00               NOP                                ;0042   00               NOP                                ;0043   00               NOP                                ;0044   00               NOP                                ;0045   00               NOP                                ;0046   00               NOP                                ;0047   00               NOP                                ;0048   00               NOP                                ;0049   00               NOP                                ;004A   00               NOP                                ;004B   00               NOP                                ;004C   00               NOP                                ;004D   00               NOP                                ;004E   00               NOP                                ;004F   00               NOP                                ;0050   00               NOP                                ;0051   00               NOP                                ;0052   00               NOP                                ;0053   00               NOP                                ;0054   00               NOP                                ;0055   00               NOP                                ;0056   00               NOP                                ;0057   00               NOP                                ;0058   00               NOP                                ;0059   00               NOP                                ;005A   00               NOP                                ;005B   00               NOP                                ;005C   00               NOP                                ;005D   00               NOP                                ;005E   00               NOP                                ;005F   00               NOP                                ;0060   00               NOP                                ;0061   00               NOP                                ;0062   00               NOP                                ;0063   00               NOP                                ;0064   00               NOP                                ;0065   00               NOP                                ;0066   00               NOP                                ;0067   00               NOP                                ;0068   00               NOP                                ;0069   00               NOP                                ;006A   00               NOP                                ;006B   00               NOP                                ;006C   00               NOP                                ;006D   00               NOP                                ;006E   00               NOP                                ;006F   00               NOP                                ;0070   00               NOP                                ;0071   00               NOP                                ;0072   00               NOP                                ;0073   00               NOP                                ;0074   00               NOP                                ;0075   00               NOP                                ;0076   00               NOP                                ;0077   00               NOP                                ;0078   00               NOP                                ;0079   00               NOP                                ;007A   00               NOP                                ;007B   00               NOP                                ;007C   00               NOP                                ;007D   00               NOP                                ;007E   00               NOP                                ;007F   00               NOP                                ;0080   00               NOP                                ;0081   00               NOP                                ;0082   00               NOP                                ;0083   00               NOP                                ;0084   00               NOP                                ;0085   00               NOP                                ;0086   00               NOP                                ;0087   00               NOP                                ;0088   00               NOP                                ;0089   00               NOP                                ;008A   00               NOP                                ;008B   00               NOP                                ;008C   00               NOP                                ;008D   00               NOP                                ;008E   00               NOP                                ;008F   00               NOP                                ;0090   00               NOP                                ;0091   00               NOP                                ;0092   00               NOP                                ;0093   00               NOP                                ;0094   00               NOP                                ;0095   00               NOP                                ;0096   00               NOP                                ;0097   00               NOP                                ;0098   00               NOP                                ;0099   00               NOP                                ;009A   00               NOP                                ;009B   00               NOP                                ;009C   00               NOP                                ;009D   00               NOP                                ;009E   00               NOP                                ;009F   00               NOP                                ;00A0   00               NOP                                ;00A1   00               NOP                                ;00A2   00               NOP                                ;00A3   00               NOP                                ;00A4   00               NOP                                ;00A5   00               NOP                                ;00A6   00               NOP                                ;00A7   00               NOP                                ;00A8   00               NOP                                ;00A9   00               NOP                                ;00AA   00               NOP                                ;00AB   00               NOP                                ;00AC   00               NOP                                ;00AD   00               NOP                                ;00AE   00               NOP                                ;00AF   00               NOP                                ;00B0   00               NOP                                ;00B1   00               NOP                                ;00B2   00               NOP                                ;00B3   00               NOP                                ;00B4   00               NOP                                ;00B5   00               NOP                                ;00B6   00               NOP                                ;00B7   00               NOP                                ;00B8   00               NOP                                ;00B9   00               NOP                                ;00BA   00               NOP                                ;00BB   00               NOP                                ;00BC   00               NOP                                ;00BD   00               NOP                                ;00BE   00               NOP                                ;00BF   00               NOP                                ;00C0   00               NOP                                ;00C1   00               NOP                                ;00C2   00               NOP                                ;00C3   00               NOP                                ;00C4   00               NOP                                ;00C5   00               NOP                                ;00C6   00               NOP                                ;00C7   00               NOP                                ;00C8   00               NOP                                ;00C9   00               NOP                                ;00CA   00               NOP                                ;00CB   00               NOP                                ;00CC   00               NOP                                ;00CD   00               NOP                                ;00CE   00               NOP                                ;00CF   00               NOP                                ;00D0   00               NOP                                ;00D1   00               NOP                                ;00D2   00               NOP                                ;00D3   00               NOP                                ;00D4   00               NOP                                ;00D5   00               NOP                                ;00D6   00               NOP                                ;00D7   00               NOP                                ;00D8   00               NOP                                ;00D9   00               NOP                                ;00DA   00               NOP                                ;00DB   00               NOP                                ;00DC   00               NOP                                ;00DD   00               NOP                                ;00DE   00               NOP                                ;00DF   00               NOP                                ;00E0   00               NOP                                ;00E1   00               NOP                                ;00E2   00               NOP                                ;00E3   00               NOP                                ;00E4   00               NOP                                ;00E5   00               NOP                                ;00E6   00               NOP                                ;00E7   00               NOP                                ;00E8   00               NOP                                ;00E9   00               NOP                                ;00EA   00               NOP                                ;00EB   00               NOP                                ;00EC   00               NOP                                ;00ED   00               NOP                                ;00EE   00               NOP                                ;00EF   00               NOP                                ;00F0   00               NOP                                ;00F1   00               NOP                                ;00F2   00               NOP                                ;00F3   00               NOP                                ;00F4   00               NOP                                ;00F5   00               NOP                                ;00F6   00               NOP                                ;00F7   00               NOP                                ;00F8   00               NOP                                ;00F9   00               NOP                                ;00FA   00               NOP                                ;00FB   00               NOP                                ;00FC   00               NOP                                ;00FD   00               NOP                                ;00FE   00               NOP                                ;00FF   00               JB    24H.1,Q0124                  ;0100   20 21 21               JB    28H.1,Q0126                  ;0103   20 41 20               ORL   A,R5                         ;0106   4D               JB    28H.1,Q012A                  ;0107   20 41 20               ANL   A,R2                         ;010A   5A               JB    29H.1,Q012E                  ;010B   20 49 20               ORL   A,R6                         ;010E   4E               JB    28H.7,Q0132                  ;010F   20 47 20               AJMP  Q0121                        ;0112   21 21               JB    20H.0,Q0138                  ;0114   20 00 21               AJMP  Q0120                        ;0117   21 20               AJMP  Q0220                        ;0119   41 20               ORL   A,R5                         ;011B   4D               JB    28H.1,Q013F                  ;011C   20 41 20               ANL   A,R2                         ;011F   5A Q0120:        JB    29H.1,Q0143                  ;0120   20 49 20               ORL   A,R6                         ;0123   4E Q0124:        JB    28H.7,Q0147                  ;0124   20 47 20               AJMP  Q0121                        ;0127   21 21               JB    20H.0,Q014C                  ;0129   20 00 20               AJMP  Q0220                        ;012C   41 20 Q012E:        MOV   @R0,#69H                     ;012E   76 69               ORL   C,2EH.4                      ;0130   72 74 Q0132:        MOV   61H,#6CH                     ;0132   75 61 6C               JB    29H.4,Q0185                  ;0135   20 4C 4D Q0138:        JNB   26H.3,Q016D                  ;0138   30 33 32               ORL   A,R4                         ;013B   4C               ADD   A,R6                         ;013C   2E               ADD   A,R6                         ;013D   2E               ADD   A,R6                         ;013E   2E Q013F:        JB    20H.0,Q0162                  ;013F   20 00 20               XRL   A,#72H                       ;0142   64 72               XRL   A,R1                         ;0144   69               MOV   @R0,#65H                     ;0145   76 65 Q0147:        XRL   A,R6                         ;0147   6E               JB    2CH.2,Q01C4                  ;0148   20 62 79               JB    2CH.1,Q016E                  ;014B   20 61 20               MOV   @R0,#69H                     ;014E   76 69               ORL   C,2EH.4                      ;0150   72 74               MOV   61H,#6CH                     ;0152   75 61 6C               JB    20H.0,Q0178                  ;0155   20 00 20               JB    24H.0,Q0193                  ;0158   20 20 38               JNB   26H.5,Q018F                  ;015B   30 35 31               JB    2EH.0,Q01D3                  ;015E   20 70 72               XRL   A,R7                         ;0161   6F Q0162:        XRL   65H,#73H                     ;0162   63 65 73               JMP   @A+DPTR                      ;0165   73               XRL   A,R7                         ;0166   6F               ORL   C,24H.1                      ;0167   72 21               NOP                                ;0169   00 Q016A:        MOV   A,#38H                       ;016A   74 38               ACALL Q01FA                        ;016C   31 FA Q016E:        MOV   A,#0EH                       ;016E   74 0E               ACALL Q01FA                        ;0170   31 FA               MOV   R7,#02H                      ;0172   7F 02 Q0174:        MOV   DPTR,#0100H                  ;0174   90 01 00               ACALL Q01CB                        ;0177   31 CB               MOV   DPTR,#00C8H                  ;0179   90 00 C8               ACALL Q0213                        ;017C   51 13               MOV   A,#01H                       ;017E   74 01               ACALL Q01FA                        ;0180   31 FA               MOV   DPTR,#0116H                  ;0182   90 01 16 Q0185:        ACALL Q01CB                        ;0185   31 CB               MOV   DPTR,#00C8H                  ;0187   90 00 C8               ACALL Q0213                        ;018A   51 13               MOV   A,#01H                       ;018C   74 01               ACALL Q01FA                        ;018E   31 FA               DJNZ  R7,Q0174                     ;0190   DF E2               MOV   DPTR,#0100H                  ;0192   90 01 00               ACALL Q01CB                        ;0195   31 CB               MOV   DPTR,#0190H                  ;0197   90 01 90               ACALL Q0213                        ;019A   51 13               MOV   A,#0C0H                      ;019C   74 C0               ACALL Q01FA                        ;019E   31 FA               MOV   DPTR,#012BH                  ;01A0   90 01 2B               ACALL Q01E0                        ;01A3   31 E0               MOV   DPTR,#00C8H                  ;01A5   90 00 C8               ACALL Q0213                        ;01A8   51 13               MOV   A,#01H                       ;01AA   74 01               ACALL Q01FA                        ;01AC   31 FA               MOV   DPTR,#0141H                  ;01AE   90 01 41               ACALL Q01E0                        ;01B1   31 E0               MOV   A,#0C0H                      ;01B3   74 C0               ACALL Q01FA                        ;01B5   31 FA               MOV   DPTR,#0157H                  ;01B7   90 01 57               ACALL Q01E0                        ;01BA   31 E0               MOV   A,#0FH                       ;01BC   74 0F               ACALL Q01FA                        ;01BE   31 FA               MOV   DPTR,#07D0H                  ;01C0   90 07 D0               ACALL Q0213                        ;01C3   51 13               MOV   A,#01H                       ;01C5   74 01               ACALL Q01FA                        ;01C7   31 FA               SJMP  Q016E                        ;01C9   80 A3 Q01CB:        MOV   R0,#01H                      ;01CB   78 01 Q01CD:        CLR   A                            ;01CD   E4               MOVC  A,@A+DPTR                    ;01CE   93               JZ    Q01DF                        ;01CF   60 0E               MOVX  @R0,A                        ;01D1   F2               ACALL Q0202                        ;01D2   51 02               INC   DPTR                         ;01D4   A3               PUSH  DPL                          ;01D5   C0 82               PUSH  DPH                          ;01D7   C0 83               POP   DPH                          ;01D9   D0 83               POP   DPL                          ;01DB   D0 82               SJMP  Q01CD                        ;01DD   80 EE Q01DF:        RET                                ;01DF   22 Q01E0:        MOV   R0,#01H                      ;01E0   78 01 Q01E2:        CLR   A                            ;01E2   E4               MOVC  A,@A+DPTR                    ;01E3   93               JZ    Q01F9                        ;01E4   60 13               MOVX  @R0,A                        ;01E6   F2               ACALL Q0202                        ;01E7   51 02               INC   DPTR                         ;01E9   A3               PUSH  DPL                          ;01EA   C0 82               PUSH  DPH                          ;01EC   C0 83               MOV   DPTR,#0064H                  ;01EE   90 00 64               ACALL Q0213                        ;01F1   51 13               POP   DPH                          ;01F3   D0 83               POP   DPL                          ;01F5   D0 82               SJMP  Q01E2                        ;01F7   80 E9 Q01F9:        RET                                ;01F9   22 Q01FA:        MOV   R0,#00H                      ;01FA   78 00               MOVX  @R0,A                        ;01FC   F2               SJMP  Q0202                        ;01FD   80 03               MOV   R0,#01H                      ;01FF   78 01               MOVX  @R0,A                        ;0201   F2 Q0202:        MOV   R1,#02H                      ;0202   79 02               MOVX  A,@R1                        ;0204   E3               JB    ACC.7,Q0202                  ;0205   20 E7 FA               RET                                ;0208   22 Q0209:        PUSH  ACC                          ;0209   C0 E0               ACALL Q0213                        ;020B   51 13               POP   ACC                          ;020D   D0 E0               DEC   A                            ;020F   14               JNZ   Q0209                        ;0210   70 F7               RET                                ;0212   22 Q0213:        XRL   DPL,#0FFH                    ;0213   63 82 FF               XRL   DPH,#0FFH                    ;0216   63 83 FF               INC   DPTR                         ;0219   A3 Q021A:        MOV   TL0,#9CH                     ;021A   75 8A 9C               MOV   TH0,#0FFH                    ;021D   75 8C FF Q0220:        MOV   TMOD,#01H                    ;0220   75 89 01               SETB  TR0                          ;0223   D2 8C               JNB   TF0,$                        ;0225   30 8D FD               CLR   TR0                          ;0228   C2 8C               CLR   TF0                          ;022A   C2 8D               INC   DPTR                         ;022C   A3               MOV   A,DPL                        ;022D   E5 82               ORL   A,DPH                        ;022F   45 83               JNZ   Q021A                        ;0231   70 E7               RET                                ;0233   22
回复

使用道具 举报

8#
ID:777053 发表于 2020-6-12 11:02 | 只看该作者
keil里可以直接转换,位置就在你仿真以后的代码转换里。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表