. - точка - перед меткой означает, что метка может быть использована во внешнем файле.
|; fail_1.asm |;file_2.asm | |; | EXTERN label | |.label: | | | decw X | ldw X, #35000 | | jrne label | call label | | ret | |
. - точка - разделитель между меткой и суффиксом, уточняющим размерность метки.
lab.b: lab.w lab.e
* - звездочка - текущее значение счетчика команд в формате MOTOROLA.
jra * ; переход "на себя" (бесконечный цикл) segment 'rom' start: ; some code offset_to_start EQU {*-start} jp {*+200}
* - звездочка - оператор времени сборки 3-го уровня - умножение (для формата MOTOROLA необходимо использовать mult).
; в индексный регистр копируется число $05AC ldw X, #{33*44} ; INTEL, TEXAS, ZILOG ldw X, #{33 mult 44} ; MOTOROLA, INTEL, TEXAS, ZILOG
# - решетка - префикс числового значения, а не адреса.
; в индексный регистр загружается содержимое ячейки с адресом $5000 ldw X, $5000 ; в индексный регистр загружается число $5000 ldw X, #$5000
$ - доллар - префикс шестнадцатиричного предсавления в формате MOTOROLA.
% - процент - префикс двочного предсавления в формате MOTOROLA.
; в аккумулятор загружается число $A5 в шестнадцатиричном представлении ld A, #$A5 ; в аккумулятор загружается то же число в десятичном представлении ld A, #165 ; в аккумулятор загружается то же число в двоичном представлении ld A, #%10100101
A - accumulator - 8-разрядный регистр аккумулятор из состава ядра STM8.
CC - code condition - 8-разрядный регистр состояния из состава ядра STM8.
CC.C - флаг(признак) переноса/заема (беззнакового переполнения) регистра состояния CC.
CC.H - флаг(признак) полупереноса/полузаема (беззнакового переполнения) регистра состояния CC.
CC.N - флаг(признак) отрицательного результата регистра состояния CC.
CC.V - флаг(признак) знакового переполнения регистра состояния CC.
CC.Z - флаг(признак) нулевого результата регистра состояния CC.
high - оператор времени сборки 1-го уровня - возвращает старший байт выражения.
label equ $112233 ld A, #{low{seg label}} ; load A with $11 ld A, #{high label} ; load A with $22 ld A, #{low lab1el} ; load A with $33
low - оператор времени сборки 1-го уровня - возвращает младший байт выражения.
label equ $112233 ld A, #{low{seg label}} ; load A with $11 ld A, #{high label} ; load A with $22 ld A, #{low lab1el} ; load A with $33
mult - оператор времени сборки 3-го уровня - умножение .
; в индексный регистр копируется число $05AC ldw X, #{33*44} ; INTEL, TEXAS, ZILOG ldw X, #{33 mult 44} ; MOTOROLA, INTEL, TEXAS, ZILOG
PC - PROGRAM COUNTER - 24-разрядный счетчик команд - содержит адрес следующей к выполнению команды.
PCE = {low{seg PC} - расширенный байт счетчика команд.
PCH = {high PC} - старший байт счетчика команд.
PCL = {low PC} - младший байт счетчика команд.
SP - STACK POINTER - 16-разрядный регистр указатель вершины/дна стека.
SPH = {high SP} - старший байт указатель вершины/дна стека.
SPL = {low SP} - младший байт указатель вершины/дна стека.
Машинные коды STM8 и команды ассемблера здесь. Адресное пространство STM8S103F3 тут.