📄 dec_add.asm
字号:
;*****************************************************************************
; dec_add.asm Copyright (c) 2007, Artech Inc.
; Create: by yan zhuosen, 09/18/2007
; Version: 8.08a
; Last Version:
; Description:
; 1. this is a dec addition program
; 2. Use AT89C51RC 4K Flash Memory, 128 Bytes on-chip RAM
;
;*****************************************************************************
;*****************************************************************************
; Modification History
;-----------------------------------------------------------------------------
; none
;*****************************************************************************
;
;
; Macro define
mEI macro ; enable all interrupts
setb EA
endm mDI
mDI macro ; disable all interrupts
clr EA
endm mEI
;-----------------------------------------------------------------------------
; ioPort define
;-----------------------------------------------------------------------------
; none
;-----------------------------------------------------------------------------
; Constants define
;-----------------------------------------------------------------------------
;
BUF_START equ 80h ; define buffer start address
BUF_END equ 0ffh ; define buffer end address
BUF_SIZE equ 80h ; define buffer size
AUGE_START equ 80h ; define augend buffer start address
AUGE_END equ 87h ; define augend buffer end address
AUGE_SIZE equ 08h ; define augend buffer size
ADD_START equ 90h ; define addend start address
ADD_END equ 97h ; define addend end address
ADD_SIZE equ 08h ; define addend size
SUM_START equ 0a0h ; define sum buffer start address
SUM_END equ 0a8h ; define sum buffer end address
SUM_SIZE equ 09h ; define sum buffer size
;-----------------------------------------------------------------------------
; Variables define
;-----------------------------------------------------------------------------
;
;*****************************************************************************
; Vector area
;
org 0000h
ajmp _Reset
;*****************************************************************************
; Reset and Main Program
;
org 0100h
_Reset:
mDI
call ClearMemory ; clear RAM
; call InitProgram ; initialize variables
call Write ;
mEI
;;------------------------------------------------------------------------
;;-------------------------- Main ----------------------------------------
_Main:
call Dec_add
ajmp _Main
;-----------------------------------------------------------------------------
; Clear 8051 ram
;-----------------------------------------------------------------------------
;
ClearMemory:
mov r0,#40h
mov a,#00h
_ClearMemory:
mov @r0,a
inc r0
cjne r0,#00h,_ClearMemory
ret
;---------------------------------------------------------------------
;-----------------------------------------------------------------------------
; FUNCTION NAME: InitProgram
;
; DESCRIPTION:
; Initialize Program
;
;-----------------------------------------------------------------------------
;
; ARGUMENTS: None.
; RETURNS: Nothing.
; SIDE EFFECTS:
; clear buffer RAM.
;
InitProgram:
mov r0,#BUF_START
mov a,#00h
_InitProgram:
mov @r0,a
inc r0
inc a
cjne r0,#BUF_END,_InitProgram
mov @r0,a
ret
;---------------------------------------------------------------------
;-----------------------------------------------------------------------------
; FUNCTION NAME: Write
;
; DESCRIPTION:
; write data to RAM[80 -- 87] and RAM[90 -- 97]
;
;-----------------------------------------------------------------------------
;
; ARGUMENTS: None.
; RETURNS: Nothing.
; SIDE EFFECTS:
;
;
Write:
mov r0,#80h
mov @r0,#21h
inc r0
mov @r0,#39h
inc r0
mov @r0,#78h
inc r0
mov @r0,#90h
inc r0
mov @r0,#12h
inc r0
mov @r0,#022h
inc r0
mov @r0,#044h
inc r0
mov @r0,#055h
mov r0,#90h
mov @r0,#95h
inc r0
mov @r0,#79h
inc r0
mov @r0,#21h
inc r0
mov @r0,#64h
inc r0
mov @r0,#53h
inc r0
mov @r0,#53h
inc r0
mov @r0,#21h
inc r0
mov @r0,#08h
ret
;---------------------------------------------------------------------
;-----------------------------------------------------------------------------
; FUNCTION NAME: Dec_add
;
; DESCRIPTION:
; this is a dec addition program
;
;
;-----------------------------------------------------------------------------
;
; ARGUMENTS: None.
; RETURNS: Nothing.
; SIDE EFFECTS:
;
;-----------------------------------------------------------------------------
Dec_add:
mov r2,#AUGE_END
mov r3,#ADD_END
mov r1,#SUM_END
mov r7,#ADD_SIZE
clr c ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -