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

📄 dec_div.asm

📁 16位10进制除法程序
💻 ASM
字号:
;*****************************************************************************
;	    dec_div.asm   Copyright (c)  2007, Artech Inc.				
; Create: by yan zhuosen, 09/24/2007										
; Version: 8.08a														 
; Last Version: 														
; Description:															
;	1. this is a dec division 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

	DIVI_START		equ		80h			; define dividend  buffer start address
	DIDI_END		equ		87h			; define dividend  buffer end address
	DIDI_SIZE		equ		08h			; define dividend  buffer size

 	DIV_START		equ		90h			; define divisor buffer start address
 	DIV_END			equ		97h			; define divisor buffer end address
  	DIV_SIZE		equ		08h			; define divisor buffer size

	QUTO_START		equ		0a0h			; define quotient  buffer start address
	QUTO_END		equ		0a7h			; define quotient  buffer end address
	QUTO_SIZE		equ		08h			; define quotient  buffer size

	REMA_START		equ		0a8h			; define remainder  buffer start address
	REMA_END		equ		0afh			; define remainder  buffer end address
	REMA_SIZE		equ		08h			; define remainder  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_div					



	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,#22h
		inc		r0
		mov		@r0,#44h
		inc		r0
		mov		@r0,#55h

		mov		r0,#90h
		mov		@r0,#00h
		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,#18h

		ret
		;---------------------------------------------------------------------
;-----------------------------------------------------------------------------
;  FUNCTION NAME: Dec_div
;
;  DESCRIPTION:
;  this is a dec division program
;
;
;-----------------------------------------------------------------------------
;
;  ARGUMENTS:    None.
;  RETURNS:      Nothing.
;  SIDE EFFECTS: 
;   	
;-----------------------------------------------------------------------------
Dec_div: 
		
		mov		r1,#QUTO_END
		mov		r2,#DIDI_END
		mov		r3,#DIV_START	
		mov		r6,#00h
		mov		r7,#08h
		mov		r5,#08h				;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -