Изучаем насколько сложный Assembler для написания программ на разных микроконтроллерах.

Страница на этапе разработки

В данном уроке мы рассмотрим на сколько отличается написание программного кода на Assembler для разных микроконтроллеров. Конечно все микроконтроллеры мы рассматривать не будем, но даже те которые мы с Вами рассмотрим думаю будет достаточно для понимания насколько сам Assembler  «страшный для изучения».
В прошлом уроке, мы уже рассмотрели основные команды которые нам понадобятся для переключения уровня сигнала на ножке микроконтроллера.  
И так, для начало напишем программный код для микроконтроллера PSoC CY8C21534.
Для начало нам нужно создать проект для Assemblera (создается так же как и для С, только в самом проекте указываем, что это у нас .asm). Далее нам нужно инициализировать нашу ножку, — инициализацию делаем точно так же как в уроке №1  и назовем нашу ножку LED1. И уже в самом main.asm прописываем программный код:

include «m8c.inc» ; part specific constants and macros
include «memory.inc» ; Constants & macros for SMM/LMM and Compiler
include «PSoCAPI.inc» ; PSoC API definitions for all User Modules

area text(ROM,REL)

export _main

_main:

     mov a,0x00 ; Turn Off LED

.terminate:
    mov a,0x00 ; Turn Off LED
    call LED1_Switch
    
    mov a,0x01 ; Turn On LED
    call LED1_Switch
jmp .terminate

Включив анализатор мы увидим на ножке P0[0] следующую картинку:

Рассмотрим команды которые мы с Вами использовали:

***************

Теперь рассмотрим тот же код но уже для микроконтроллера PIC 16F873A:

Для микроконтроллера STM32F103 программный код для мигание светодиодом на Assembler выглядит следующим образом: