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