|

楼主 |
发表于 2023-3-25 11:22:34
|
显示全部楼层
- ;********************************************************;
- ;r246--r249被减数[0,时分秒]
- ;r250--r253减数[0,时分秒]
- ;r242--r244结果[时分秒]
- 时间计算:
- ;给被减数增加1h
- ;给r249+60s,给r248+59m,这样相减就不会借位
- INC R249,0,60
- INC R248,0,59
- PUSH R10,8 ;借用
- SUB R246,R250,R10 ;r15--r17为结果(多59m+60s)
- MOV R15,R242,3 ;暂时结果(多1h)
- ;减去多算的59m+60s
- DEC R17,0,60
- JB R16,7,秒减少60s不成功
- ;秒可以减少60s:
- DEC R244,0,60
- DEC R16,0,59
- JB R15,7,分减少59m不成功
- ;分可以减少59m:
- DEC R243,0,59
- GOTO 计算完成
- 分减少59m不成功:
- INC R243,0,1 ;m+1
- DEC R242,0,1 ;h-1(最终减少59分钟)
- GOTO 计算完成
- 秒减少60s不成功:
- DEC R16,0,60
- JB R15,7,分减少60m不成功
- ;分可以减少60m:
- DEC R243,0,60
- GOTO 计算完成
- 分减少60m不成功:
- DEC R242,0,1
- 计算完成:
- POP R10,8 ;归还
- RET
- ;********************************************************;
复制代码 |
|