Ещё один вопрос.
Не вполне понимаю вот такой кусочек кода:
Команда BCS осуществляет переход по адресу 022 632, если в результате сравнения случился перенос единицы из старшего разряда результата, т.е. бит С=1.Код:022 414: 020 127 CMP R1,#011 000 022 416: 011 000 022 420: 103 504 BCS 022 632
При сравнении выполняется операция R1 минус 011 000.
Теперь вопрос - в каком случае случится перенос (и произойдёт переход)?
И то же самое, но в случае с командой BCC.
Плохо у меня с математикой ...
Так, по этим командам происходит сравнение чисел как беззнаковых.
Например, R1 = 012 000.
Тогда для двухбайтовых чисел мы получим: 012 000 - 011 000 = 001 000. Заимствования из старшего разряда не было. C=0.
Если же, R1 = 010 000, то: 010 000 - 011 000 = 177 000. Произошло заимствование из старшего разряда. C=1.
Полагаю, что переход по BCS произойдёт если R1 < 011 000,
а для BCC - если R1 >= 011 000.




Ответить с цитированием