📄 f_div.asm
字号:
;*****************************************************************************
; f_div.asm Copyright (c) 2007, Artech Inc.
; Create: by Ling Chen, 10/24/2007
; Version: 8.08a
; Last Version:
; Description:
; 1. this is a f_div 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
DIVI_END equ 87h ; define dividend buffer end address
DIVI_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 uffer size
REMA_START equ 0afh ; define remainder buffer start address
REMA_END equ 0afh ; define remainder buffer end address
REMA_SIZE equ 08h ; define remainder buffer size
REMA2_START equ 0b0h ; define remainder2 buffer start address
REMA2_END equ 0b8h ; define remainder2 buffer end address
REMA2_SIZE equ 09h ; define remainder2 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 F_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 -- 8F]
;
;-----------------------------------------------------------------------------
;
; ARGUMENTS: None.
; RETURNS: Nothing.
; SIDE EFFECTS:
;
;
Write:
mov r0,#90h
mov @r0,#11h
inc r0
mov @r0,#11h
inc r0
mov @r0,#11h
inc r0
mov @r0,#11h
inc r0
mov @r0,#11h
inc r0
mov @r0,#11h
inc r0
mov @r0,#11h
inc r0
mov @r0,#11h
mov r0,#80h
mov @r0,#00h
inc r0
mov @r0,#00h
inc r0
mov @r0,#00h
inc r0
mov @r0,#00h
inc r0
mov @r0,#00h
inc r0
mov @r0,#00h
inc r0
mov @r0,#00h
inc r0
mov @r0,#00h
ret
;---------------------------------------------------------------------
;-----------------------------------------------------------------------------
; FUNCTION NAME: F_div
;
; DESCRIPTION:
; RAM[80
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -