|
程序如下BRLO(line 36)指令是根据进位标志C跳转的,它前面的CPI指令是如何影响到进位标志位C和零标志位Z来影响程序
流程的?r1初始值为0
- avr034C: ldi YL, 0x5F ; 034C E5CF
- ldi YH, 0x04 ; 034D E0D4
- out SPH, YH ; 034E BFDE
- out SPL, YL ; 034F BFCD
- sts 0x00EC, r1 ; 0350 9210 00EC
- sts 0x00E8, r1 ; 0352 9210 00E8
- sts 0x00CC, r1 ; 0354 9210 00CC
- ldi r18, 0xCE ; 0356 EC2E
- ldi r19, 0x00 ; 0357 E030
- ser r25 ; 0358 EF9F
- ldi r24, 0x00 ; 0359 E080
- avr035A: movw ZH:ZL, r19:r18 ; 035A 01F9
- add ZL, r24 ; 035B 0FE8
- adc ZH, r1 ; 035C 1DF1
- st Z, r25 ; 035D 8390
- subi r24, 0xFF ; 035E 5F8F
- cpi r24, 0x14 ; 035F 3184
- brlo avr035A ; 0360 F3C8
- sts 0x00CC, r1 ; 0361 9210 00CC
- ldi r18, 0xEF ; 0363 EE2F
- ldi r19, 0x00 ; 0364 E030
- ldi r24, 0x00 ; 0365 E080
复制代码
|
|