-1
我有问题。 如果我报警== 60我需要切换INC alarmM并重置报警,但是我有一个问题装配闹钟
increment_alarm_second:
inc alarmS ; increment alarmS
cpi alarmS , 0x5A ; 0x3C ; Compare alarmS to 60
breq increment_alarm_minute ; If true, jump incMinute
swap alarmS ; swap here to save registers (swap nibbles)
cpi alarmS , 0xA0 ; compares alarmS register to an inverted 10
brlo endIncSecal ; branch if lower then an inverted 10 to endIncSecal
incSecTenal:
andi alarmS, 0x0F ; does an AND + increment on the alarmS register
inc alarmS ; increments the alarmS register
swap alarmS ; swaps alarm_s register
ret ; returns from the calll
endIncSecal:
swap alarm_s ; swap back
ret
为什么CPI报警,0x5A?而不是0x3C,即60 ..
之后,我们交换半字节,并与之比较,0xA0?为什么是这样?
预先感谢
好吧,谢谢你有道理,但你怎么知道它是检查小节? 有没有更简单的方法来做这个片段? –