首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

汇编的有关问题,请问下大家

2012-03-15 
汇编的问题,请教下大家这是我51开发板上,一个例程,是数码管扫描程序可是我刚学,看不懂.请问前面CODE_SEGSE

汇编的问题,请教下大家
这是我51开发板上,一个例程,是数码管扫描程序
可是我刚学,看不懂.请问前面

CODE_SEGSEGMENTCODE 

DATA_SEGSEGMENTDATA 

RSEG DATA_SEG

dis_digit:DS1
dis_index:DS1
dis_buf:DS8
stack:DS20


这两个有什么用???



整个程序如下




CODE_SEGSEGMENTCODE 

DATA_SEGSEGMENTDATA 

RSEG DATA_SEG

dis_digit:DS1
dis_index:DS1
dis_buf:DS8
stack:DS20

;===========================================================

CSEGAT00000H; Reset向量
LJMPMAIN

CSEGAT0000BH; 定时器0中断向量

LJMPTIMER0


;===========================================================
RSEG CODE_SEG
MAIN:
MOVSP,#(stack-1); 初始化堆栈指针
MOV P0,#0FFH; 初始化I/O口
MOV P2,#0FFH
MOV TMOD,#01H; 初始化timer0
MOV TH0,#0FCH
MOV TL0,#017H
MOV IE,#082H

MOVDPTR, #DIS_CODE; 设定显示初值
MOVA,#1
MOVCA,@A+DPTR
MOV dis_buf,A
MOVA,#2
MOVCA,@A+DPTR
MOV dis_buf+01H,A
MOVA,#3
MOVCA,@A+DPTR
MOV dis_buf+02H,A
MOVA,#4
MOVCA,@A+DPTR
MOV dis_buf+03H,A
MOVA,#5
MOVCA,@A+DPTR
MOV dis_buf+04H,A
MOVA,#6
MOVCA,@A+DPTR
MOV dis_buf+05H,A
MOVA,#7
MOVCA,@A+DPTR
MOV dis_buf+06H,A
MOVA,#8
MOVCA,@A+DPTR
MOV dis_buf+07H,A

MOV dis_digit,#0FEH; 初始从第一个数码管开始扫描
MOV dis_index,A

SETB TR0; 启动定时器0,开始动态扫描显示

MAIN_LP:

; 主程序循环,增加其它代码

SJMP MAIN_LP

; END OF main


;===========================================================

USING0
TIMER0:
; 定时器0中断服程序, 用于数码管的动态扫描
; DIS_INDEX --- 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量
; DIS_DIGIT --- 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时,
;选通P2.0口数码管
; DIS_BUF --- 显于缓冲区基地址

PUSH ACC
PUSH PSW
PUSH AR0

MOV TH0,#0FCH
MOV TL0,#017H

MOV P2,#0FFH; 先关闭所有数码管

MOV A,#DIS_BUF; 获得显示缓冲区基地址
ADD A,DIS_INDEX; 获得偏移量
MOV R0,A; R0 = 基地址 + 偏移量
MOV A,@R0; 获得显示代码
MOV P0,A; 显示代码传送到P0口

MOV P2,DIS_DIGIT; 

MOVA,DIS_DIGIT; 位选通值左移, 下次中断时选通下一位数码管
RLA
MOVDIS_DIGIT,A

INCDIS_INDEX; DIS_INDEX加1, 下次中断时显示下一位
ANLDIS_INDEX,#0x07; 当DIS_INDEX等于8(0000 1000)时, 清0

POP AR0
POP PSW
POP ACC

RETI 
; END OF timer0
;===========================================================

RSEG CODE_SEG
DIS_CODE:
DB0C0H
DB0F9H
DB0A4H
DB0B0H
DB099H
DB092H
DB082H
DB0F8H
DB080H
DB090H
DB0FFH

END


[解决办法]
定义代码段和数据段
[解决办法]
这是8086汇编吗。。别的看不懂。。不过应该是定义代码段和数据段的。。

热点排行