📄 rd24_do_chk.asm
字号:
;************************************************************
;文档类型: 原代码
;项目编号:
;文档编号:
;修订版本: V2.0
;生成日期: 2004.6.12
;文档作者: 张志忠
;审 核:
;************************************************************
;相关文档: 读写24操作,24校验方式
;文档编号 说明
;************************************************************
;修订版本:
;修订版本:
;************************************************************
$INCLUDE (RAML128.INC)
$INCLUDE (RAMH128.INC)
$INCLUDE (24ADDR.INC)
$INCLUDE (IO.INC)
CODE_REG SEGMENT CODE
RSEG CODE_REG
PUBLIC RD24_DO_CHK
PUBLIC WR24_DO_CHK
;****************************************************
EXTRN CODE(RD_I2)
;****************************************************
;读24数据后,校验判断
;入口参数:RD_N的字节数,出口时未被破坏
;输出数据:RD_BUF0,1,2...
; CY=1,校验正确,CY=0,校验未通过
;****************************************************
RD24_DO_CHK:
SETB WP ;;增加对24写保护的冗余 05.9.8LIHENG
CALL RD_I2
MOV B,RD_N
DEC B ;2004.6.12,校验前几个字节
MOV A,#0
MOV R0,#RD_BUF0
LOOP_CHKD:
ADD A,@R0
INC R0
DJNZ B,LOOP_CHKD
ADD A,#'X'
MOV B,@R0
CJNE A,B,RETURN_C0
SETB C
RET
RETURN_C0:
MOV B,RD_N
MOV R0,#RD_BUF0
LOOP_CLRD:
MOV @R0,#0
INC R0
DJNZ B,LOOP_CLRD
CLR C
RET
;****************************************************
;对写24的数据进行校验运算
;入口参数:WR_N的字节数
;输出数据:WD_BUF0,1,2...,校验运算完成
;****************************************************
WR24_DO_CHK:
MOV B,WR_N
DEC B ;2004.6.12,校验前几个字节
MOV A,#0
MOV R0,#WR_BUF0
LOOP_CHKWR:
ADD A,@R0
INC R0
DJNZ B,LOOP_CHKWR
ADD A,#'X'
MOV @R0,A
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -