关于汇编语言?

初学汇编,还无法完全看懂下面程序,求高手给分析一下。
http://hi.baidu.com/紫色鱼尾/blog/item/0baa42d64f927dc850da4b0e.html
程序在我空间里了

我把重要的语句做一下注释吧,希望对你有帮助

SECOND EQU 30H ;EQU相当于“=”,即定义second与地址单元30H等同
MINITE EQU 31H
HOUR EQU 32H
HOURK BIT P0.0 ;BIT是定义 位,即用HOURK代替P0.0口
MINITEK BIT P0.1
SECONDK BIT P0.2
DISPBUF EQU 40H
DISPBIT EQU 48H
T2SCNTA EQU 49H
T2SCNTB EQU 4AH
TEMP EQU 4BH

ORG 00H
LJMP START
ORG 0BH
LJMP I NT_T0
START: MOV SECOND,#00H ;将数值00H送入地址为30H的存储单元
MOV MINITE,#00H
MOV HOUR,#12
MOV DISPBIT,#00H
MOV T2SCNTA,#00H
MOV T2SCNTB,#00H
MOV TEMP,#0FEH ;付初值
LCALL DISP ;点亮第一位数码管
MOV TMOD,#01H ;设置T0为工作方式1,定时
MOV TH0,#(65536-2000) / 256 ;设置计数初值,计数2000次,即2ms
MOV TL0,#(65536-2000) MOD 256
SETB TR0 ;给TR0高电平1,即启动T0
SETB ET0 ;开定时器0中断
SETB EA ;开总中断
WT: JB SECONDK,NK1 ;判断 SECONDK中的直接位是否为1,为1跳转到NK1处执行,为0顺序执行
LCALL DELY10MS ;调用10MS延时程序,延时。
JB SECONDK,NK1 ;再次判断
INC SECOND ; SECOND中的数据自加1
MOV A,SECOND ;将SECOND中的数据再送入累加器A
CJNE A,#60,NS60 ;60与累加器A中的数值比较,不相等则跳转到NS60处执行,即判断是否到了60秒
MOV SECOND,#00H ;重新付初值
NS60: LCALL DISP ;调用数码管显示程序,显示秒
JNB SECONDK,$ ;直接位为0时原地跳转等待,为1顺序执行
NK1: JB MINITEK,NK2
LCALL DELY10MS
JB MINITEK,NK2
INC MINITE
MOV A,MINITE
CJNE A,#60,NM60 ;判断是否到了60分钟
MOV MINITE,#00H
NM60: LCALL DISP ;显示分
JNB MINITEK,$
NK2: JB HOURK,NK3
LCALL DELY10MS
JB HOURK,NK3
INC HOUR
MOV A,HOUR
CJNE A,#24,NH24 ;判断是否计满到24小时
MOV HOUR,#00H ;付初值
NH24: LCALL DISP ;显示时
JNB HOURK,$
NK3: LJMP WT ;长跳转到WT处,从新循环
DELY10MS: ;延时子程序
MOV R6,#10
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
DISP: ;显示子程序
MOV A,#DISPBUF
ADD A,#8
DEC A
MOV R1,A
MOV A,HOUR
MOV B,#10 ;用除以10的方法将2位数转换为十位和个位
DIV AB ;A中为十位数,B中为个位数
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
MOV A,#10
MOV @R1,A
DEC R1
MOV A,MINITE
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
MOV A,#10
MOV @R1,A
DEC R1
MOV A,SECOND
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
RET
INT_T0: ;中断服务程序
MOV TH0,#(65536-2000) / 256
MOV TL0,#(65536-2000) MOD 256
MOV A,#DISPBUF
ADD A,DISPBIT
MOV R0,A
MOV A,@R0
MOV DPTR,#TABLE ;取数据表首地址
MOVC A,@A+DPTR
MOV P2,A ;送P2口显示
MOV A,DISPBIT
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
INC DISPBIT
MOV A,DISPBIT
CJNE A,#08H,KNA 八个LED都亮过顺序执行
MOV DISPBIT,#00H
KNA: INC T2SCNTA
MOV A,T2SCNTA
CJNE A,#100,DONE
MOV T2SCNTA,#00H
INC T2SCNTB
MOV A,T2SCNTB
CJNE A,#05H,DONE ;5*100*2ms=1s
MOV T2SCNTB,#00H
INC SECOND
MOV A,SECOND
CJNE A,#60,NEXT
MOV SECOND,#00H
INC MINITE
MOV A,MINITE
CJNE A,#60,NEXT
MOV MINITE,#00H
INC HOUR
MOV A,HOUR
CJNE A,#24,NEXT
MOV HOUR,#00H
NEXT: LCALL DISP
DONE: RETI ;中断返回
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;0—9显示段码
TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH ;数码管位选码
END

辛苦注释,希望给点分撒,呵呵,关键是希望对你有些帮助。
温馨提示:内容为网友见解,仅供参考
无其他回答

关于汇编语言和高级语言的问题
汇编语言是为解决机器指令难以记忆的问题而发明的。通过助记符代替机器语言指令,汇编语言与机器语言一一对应,CPU有多少条机器指令就有多少条汇编指令。然而,汇编语言仍需学习其内部结构,对复杂结构理解有难度。为解决这一问题,高级语言应运而生。程序员使用高级语言编写程序后,通过编译器转换为汇编语言...

汇编是什么
汇编是一种编程语言和程序设计技术。汇编语言是一种低级语言,它用助记符来表示计算机可以直接执行的机器操作。这种语言在计算机编程中起到了至关重要的作用。下面是关于汇编的详细解释:1. 汇编语言的基础:汇编语言是一种面向机器的语言,它直接对应于计算机硬件的指令集。开发者通过编写汇编代码来告诉计算...

哪些属于汇编语言
汇编语言包括:x86汇编语言、ARM汇编语言等。汇编语言是一种低级语言,介于机器语言和高级语言之间。它是一种用特定指令代码编写的语言,这些指令代码是计算机可以直接识别和执行的。关于汇编语言的详细内容如下:一、定义 汇编语言是一种用助记符代替机器语言的二进制指令码的语言。它使用特定的语法和指令集...

汇编码是什么
汇编码,也称为汇编语言,是一种低级语言,接近于计算机机器语言。它是将汇编指令以助记符形式表示的编程语言。当程序员使用汇编语言编写程序时,这些程序需要经过汇编器转换为机器语言,计算机才能正确执行。二、汇编码的特点 汇编码具有直接对应机器操作的特点。由于它是面向机器的,因此与特定的计算机架构...

asm是什么
汇编语言是一种用于与计算机硬件交互的编程语言。以下是关于ASM的详细解释:1. ASM的基本概念 ASM是汇编语言的缩写,它是一种低级语言,与计算机硬件紧密相关。汇编语言是一种用助记符表示计算机操作的语言,这些助记符对应计算机指令系统的实际操作。它介于机器语言和高级语言之间,是一种用特定语法和格式...

关于汇编语言程序( )。
【答案】:C C【解析】汇编语言程序相对于机器语言程序具有良好的可移植性。

汇编语言指令
汇编语言指令是计算机程序中的低级语言指令,用于直接控制计算机硬件执行特定的操作。这些指令通常由助记符和操作数组成。汇编语言依赖于具体的计算机架构和操作系统,不同的架构和操作系统会有不同的指令集。以下是关于汇编语言指令的 1. 汇编语言指令的种类和功能:汇编语言指令通常分为几大类,包括数据传送...

汇编什么意思
汇编是指将不同的编程语言或代码转换为机器能够执行的指令的过程。以下是关于汇编的详细解释:1. 汇编的基本概念:汇编是一种编程语言的底层表示形式,也被称为汇编语言。这种语言被设计为与计算机的硬件指令集直接对应,因此计算机可以直接执行这些指令。汇编语言比高级语言更接近计算机硬件,因此编写起来更为...

关于汇编语言PSP的知识有哪些?
5:段前缀是操作系统在执行程序时为程序所建立的一个信息块, 里面包括了传递给待运行程序的命令行参数, 程序运行结束时返回DOS所需的地址等有用的信息。6:COM格式比较特殊,数据段,堆栈段集中在一个段里,连PSP也集中在这个段里, EXE文件在运行时DS\/ES的初值设为PSP的段地址,可以直接用...

汇编语言是什么
一、汇编语言简介 汇编语言, 即第二代计算机语言,用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减,“ MOV”代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营...

相似回答