📄 fduma.asm
字号:
;********************FDUMA********************
;本程序实现在双字节数据块中查找无符号数极大值。
;入口参数:数据块首址在SADR中,数据个数在W中。
;出口参数:极大值在SOUH:SOU中,极大值地址在SADR中。
;占用资源:W,STATUS,FSR,020H,024H,025H,028H,一重堆栈。
;说 明: 如果有两个或两个以上相等的极大值,则只能给出第一个极大值的地址.
IFNDEF FDUMA1
#DEFINE FDUMA1
FDUMA MOVWF TEMP1
MOVF SADR,W
MOVWF FSR
CLRF SOUH
CLRF SOU
INCF FSR,F
LOOP44 MOVF INDF,W
SUBWF SOUH,W
BTFSC STATUS,C
GOTO NOVER
MOVF INDF,W
MOVWF SOUH ;SOUH中总是存放最大值
DECF FSR,F ;FSR指向低位字节
RELOW MOVF INDF,W
MOVWF SOU ;最大值低位
MOVF FSR,W
MOVWF SADR ;最大值地址
NEXT19 INCF FSR,F
NEXT20 INCF FSR,F
INCF FSR,F
DECFSZ TEMP1,F
GOTO LOOP44
RETURN
NOVER BTFSS STATUS,Z ;判断高位是否相等
GOTO NEXT20
DECF FSR,F
MOVF INDF,W
SUBWF SOU,W ;高位相等的情况下判断低位大小
BTFSS STATUS,C
GOTO RELOW
GOTO NEXT19
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -