2015-01-19 4 views
0

Я только что начал класс программирования на конвейерной линии, и у меня проблема с проблемой, я добавляю от 240 до 49, и я знаю, что это переполнение, моя цель - сделать регистр 1 равным 1 при переполнении этих чисел. Я знаю, что флаг переноса устанавливается, когда я добавить их, но я не уверен в том, как использовать этот флаг, чтобы r1, равное 1.AVR Studio - AVR Simulator 2 Carry Flag Issue

This program should calculate: 
; R0 = R16 + R17 + R18 
; 
;--*1 Do not change anything between here and the line starting with *-- 
.cseg 
    ldi r16, 0x30 
    ldi r17, 0x31 
    ldi r18, 0x32 
;*--1 Do not change anything above this line to the --* 

;*** 
; Your code goes here: 
; 
    add r0, r16 
    add r0, r17 
    add r0, r18 


;**** 

;--*2 Do not change anything between here and the line starting with *-- 
done: jmp done 
;*--2 Do not change anything above this line to the --* 

ответ

0

я уверен, что есть более умные способы, но вы можете использовать brcs, ответвление, если переносная комплектация:

add r0, r16 
add r0, r17 
add r0, r18 
brcs carry ; Branch if carry set 

carry: ldi r1, 0x1 ; Branch destination 
Смежные вопросы