Великий ассемблер!
Aug. 20th, 2006 11:56 amВ общем, да...
serg2x2 был прав. У меня там был недочёт. Но так просто сложение с переносом делать нельзя, т.к. мы бит переноса портим в вычитании. Пришлось ставить оператор, обнуляющий этот флаг. В результате код, в котором был баг, будет таким:
Как оказалось флаг переноса мы подсираем в вычитании. Приходится его обнулять принудительно. Когда написал онным образом в дебагере код был прогнан с разными цифирями и всё работало на ура!
З.Ы. Просто асм на ночь - это жопа!
clc ;Очищаем флаг переноса! Очень важный момент push r18 ADD ZL,R16 ADC ZH,R17;Складываем старший байт учитывая перенос.
Как оказалось флаг переноса мы подсираем в вычитании. Приходится его обнулять принудительно. Когда написал онным образом в дебагере код был прогнан с разными цифирями и всё работало на ура!
З.Ы. Просто асм на ночь - это жопа!