argus98 (15.10.2012 16:02, просмотров: 143) ответил tvi на Подскажите, пожалуйста, как в ассемблере передавать параметры при вызове подпрограммы и как менять значения переменных? Я пытался использовать для этого директиву SET, но у меня ничего не получилось - демопрогу этого эксперимента прилагаю.
Вставлю свои 5 копеек (по "trablset2.asm") : 1. Есть такая замечательная команда sbiw
.macro Delay
lDelay:
sbiw @0,1 ;(@0 может быть R24, XL, YL, ZL)
brne lDelay
.endmacro
2. констукцию
brne ts1
rjmp TestG2
ts1:
проще сделать так:
breq TestG2
(для ts2: аналогично)
3. Какой смысл от проверки sbrc FLAG,fGx, если программа туда попадает ТОЛЬКО при условии fGx=0 ?
4. Судя по тексту смысл (от TestSet: до lDelay:) заключается в инверсии бита fGx в FLAG.
Тогда не проще будет:
TestSet:
eor FLAG,p1
lDelay:
:::::::: ; а ???
PS "clr FLAG ; без этой команды в VMLABе не работает"
и правильно ругается. По сбросу содержимое РОНов и ОЗУ не определено