⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dec_add.asm

📁 16位10进制加法程序
💻 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 + -