请教汇编高手帮我翻译一下这个程序的意思

BPOT DATA 20H
ML DATA 21H
MH DATA 22H
FL DATA 23H
FH DATA 24H
HL DATA 25H
HH DATA 26H
MODE DATA 27H
DM DATA 28H
;-----------------------------
ORG 0H
SJMP MAIN
ORG 23H
LJMP T0SVR
;-----------------------------
MAIN: NOP
MOV SP,#50H
MOV TH0,#0D9H
MOV TL0,#01AH
MOV TMOD,#01H
MOV IE,#82H
SETB TR0
CLR A
MOV R0,#8
MAIN1: MOV R1,#BPOT
MOV @R1,A
INC R1
DJNZ R0,MAIN1
SJMP $
;-----------------------------
T0SVR: CLR TR0
PUSH ACC
MOV TH0,#0D9H
MOV A,#034H
CLR C
SUBB A,TL0
MOV TL0,A
SETB TR0
INC DM
MOV A,DM
CJNE A,#100,T0SVR2
CLR A
MOV DM,A
INC ML
MOV A,ML
CJNE A,#10,T0SVR2
CLR A
MOV ML,A
INC MH
MOV A,MH
CJNE A,#6,T0SVR2
CLR A
MOV MH,A
INC FL
MOV A,FL
CJNE A,#10,T0SVR2
CLR A
MOV FL,A
INC FH
CJNE A,#6,T0SVR2
CLR A
MOV FH,A
T0SVR2: MOV P3,#0C3H
MOV A,#ML
ADD A,BPOT
MOV R0,A
MOV A,@R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
CPL A
MOV P1,A
MOV A,BPOT
CJNE A,#2,T0SVR3
MOV A,DM
SETB C
SUBB A,#50
CPL C
MOV P1.7,C
MOV A,BPOT
T0SVR3: MOV DPTR,#BITC
MOVC A,@A+DPTR
MOV P3,A
INC BPOT
MOV A,BPOT
CJNE A,#4,T0SVR1
CLR A
MOV BPOT,A
T0SVR1: POP ACC
RETI
;-----------------------------
BITC: DB 0E3H,0D3H,0CBH,0C7H
TABLE: DB 3FH,6H,5BH,4FH,66H,6DH,7DH,7H,7FH,6FH
END

BPOT DATA 20H
ML DATA 21H
MH DATA 22H
FL DATA 23H
FH DATA 24H
HL DATA 25H
HH DATA 26H
MODE DATA 27H
DM DATA 28H ;设定了九个工作单元
;-----------------------------
ORG 0H ;指定程序入口
SJMP MAIN ;转主程序
ORG 23H ;中断入口
LJMP T0SVR ;转中断处理程序
;-----------------------------
MAIN: NOP ;空操作
MOV SP,#50H ;设堆栈底为50H单元
MOV TH0,#0D9H
MOV TL0,#01AH ;T0计数初值为D91AH
MOV TMOD,#01H ;T0工作方式1(16位计数)
MOV IE,#82H;开中断,允许T0溢出中断
SETB TR0 ;启动T0计数
CLR A
MOV R0,#8
MAIN1: MOV R1,#BPOT
MOV @R1,A
INC R1
DJNZ R0,MAIN1 ;将设定的九个工作单元清零
SJMP $ ;等待中断
;-----------------------------
T0SVR: CLR TR0 ;关闭T0计数
PUSH ACC ;保存ACC
MOV TH0,#0D9H ;重装T0计数初值高八位为D9H
MOV A,#034H
CLR C
SUBB A,TL0
MOV TL0,A ;重装T0计数初值低八位为34H带进位减原值之差
SETB TR0 ;启动T0 计数
INC DM ;DM 计数
MOV A,DM
CJNE A,#100,T0SVR2 ; DM 计数不够100次转T0SVR2
CLR A
MOV DM,A ; DM 计数清零
INC ML ;ML 计数
MOV A,ML
CJNE A,#10,T0SVR2 ;ML 计数不够10次转T0SVR2
CLR A
MOV ML,A ; ML 计数清零
INC MH ; MH 计数
MOV A,MH
CJNE A,#6,T0SVR2 ;MH 计数不够6次转T0SVR2
CLR A
MOV MH,A ; MH 计数清零
INC FL ; FL 计数
MOV A,FL
CJNE A,#10,T0SVR2 ;FL 计数不够6次转T0SVR2
CLR A
MOV FL,A ; FL 计数清零
INC FH ; FH 计数
CJNE A,#6,T0SVR2 ;FH 计数不够6次转T0SVR2
CLR A
MOV FH,A ; FH 计数清零
T0SVR2: MOV P3,#0C3H
MOV A,#ML
ADD A,BPOT
MOV R0,A
MOV A,@R0 ;形成读数表的偏移量
MOV DPTR,#TABLE ;数表头地址TABLE
MOVC A,@A+DPTR ;读数表TABLE中的数
CPL A
MOV P1,A ;读出的数取反后经P1输出
MOV A,BPOT
CJNE A,#2,T0SVR3 ;BPOT计数不够2次转T0SVR3
MOV A,DM
SETB C ;置1进位位C
SUBB A,#50 ;DM当前计数值带进位减50H入A
CPL C
MOV P1.7,C ;向P1.7输出0
MOV A,BPOT ;BPOT当前计数值做读数表的偏移量
T0SVR3: MOV DPTR,#BITC ;数表BITC表头地址
MOVC A,@A+DPTR ;读数表BITC中的数
MOV P3,A ;向P3输出该数
INC BPOT ;BPOT计数
MOV A,BPOT
CJNE A,#4,T0SVR1 ;BPOT计数不够4次转TOSVR1
CLR A
MOV BPOT,A ;清零BPOT计数
T0SVR1: POP ACC ;恢复A
RETI ;中断返回
;-----------------------------
BITC: DB 0E3H,0D3H,0CBH,0C7H
TABLE: DB 3FH,6H,5BH,4FH,66H,6DH,7DH,7H,7FH,6FH
END
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-23
这是个单片机中的数码管显示程序吧
第2个回答  2009-03-23
我看有6进制和10进制,有中断,有显示,是一个利用定时中断做的计时程序。
不过还发现有点小错误,开机20H-28H清零时,返回点不正确。
第3个回答  2009-03-23
这个是单片机程序。
第4个回答  2009-03-23
单片机程序,自己慢慢看书吧,一条指令一条指令的理解。

请教汇编高手帮我翻译一下这个程序的意思
BPOT DATA 20H ML DATA 21H MH DATA 22H FL DATA 23H FH DATA 24H HL DATA 25H HH DATA 26H MODE DATA 27H DM DATA 28H ;设定了九个工作单元 ;--- ORG 0H ;指定程序入口 SJMP MAIN ;转主程序 ORG 23H ;中断入口 LJMP T0SVR ;转中断处理程序 ;--- MAIN: NOP ;空操作 MO...

求汇编大神帮忙翻译下这个子程序什么意思,详细点我是新手,万分感激...
哥们这是一个串行口中断的程序介绍你一本书看下人民邮电出版社的例说51单片机c语言版那个里面比较清楚,如果还不会我可以帮你一下翻译成c版,,#include

急求汇编语言翻译,真心要知道每一行的意思,求好心大哥大姐给我翻译把...
;寄存器间接寻址,把A里的数据传送到R0对应的地址RET ; 子程序返回END ;结束

简单的单片机的汇编语言编程的程序翻译
DELAY: MOV R0,#080H \/\/延时子程序 D1: MOV R1,#0FAH D2: DJNZ R1,D2 \/\/r1为0,跳转到下一条指令 DJNZ R0,D1 RET END

急求汇编语言翻译,真心要知道每一行的意思,求好心大哥大姐给我翻译把...
问题分析:举例说明,具体就是这个意思,你可以参照一下。希望能帮助到你。理解一下就行。没有必要研究的太深。这个不是重点。LJMP MAIN;ORG转到主程序0003H LJMP INT0;中断0 ORG 0013H LJMP INT1;中断 ORG 0030H MAIN:主程序开始的地方 LJMP MAIN ;跳到main语句,绕过中断入口 ORG 1000H ;...

什么是汇编程序,编译程序,解释程序?它们的功能是什么?
【汇编程序】:把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。【编译程序】:把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言的目标程序的翻译程序。【解释程序】:对源程序边解释翻译成机器代码边执行的高级语言程序。高级语言的程序的执行的途径:1)源程序(高级...

什么是翻译程序,编译程序,解释程序
翻译程序是指将用某种语言编写的程序转换成另一种语言形式的程序的程序,如编译程序和汇编程序等。编译程序是把用高级语言编写的源程序转换(加工)成与之等价的另一种用低级语言编写的目标程序的翻译程序。解释程序是解释、执行高级语言源程序的程序。

请问汇编程序, 解释程序, 编译程序分别指?
1、汇编程序 把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,由汇编执行指令和汇编伪指令组成。采用汇编语言编写程序虽不如高级程序设计语言简便、直观...

什么是汇编语言程序
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言编译器把汇编程序翻译成机器语言的过程称为汇编。

汇编语言编写的程序必须要翻译
这个翻译过程通常是通过汇编器来完成的。汇编器是一种特殊的程序,它读取汇编语言源代码,并将其转换成对应的机器语言指令。这些机器语言指令是计算机硬件能够直接理解和执行的。例如,汇编语言中的“MOV”指令,在x86架构的计算机中,会被翻译成对应的机器码,这个机器码会告诉CPU将数据从一个...

相似回答