macro.inc 1013 B

123456789101112131415161718192021222324252627282930
  1. ; Тут будут макросы ===========================================================
  2. ; Загрузка числа в порт
  3. .MACRO OUTI ; Это описание макроса. Везде где outi встретится в
  4. ; коде, то заменяется на этот кусок кода,
  5. LDI R17,@1 ; причем @0,@1 это параметры, они заменятся введенными
  6. ; параметрами макроса. Данный макрос тупо копирует
  7. OUT @0,R17 ; введенное число сначала в регистр R17, а из него регистр
  8. .ENDM
  9. ; сохраняем в стек SREG и R16
  10. .MACRO PUSHF
  11. PUSH R16
  12. IN R16,SREG
  13. PUSH R16
  14. .ENDM
  15. ; восстанавливаем из стека SREG и R16
  16. .MACRO POPF
  17. POP R16
  18. OUT SREG,R16
  19. POP R16
  20. .ENDM
  21. ; 16-ти разрядное сравнение регистровой пары R с числом
  22. .macro CPIW
  23. ldi R16,High(@0)
  24. cpi RL,Low(@0)
  25. cpc RH,R16
  26. .endm