Главная Микроконтроллеры [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [ 32 ] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] В¥ТЕ4(выражение) - возвращает 4 байта выражения; LWRD(вьфaжeниe) - возвращает биты О-15 выражения; HWRD(выpaжeниe) - возвращает биты 16-31 выражения; РАОЕ(вьфажение) - возвращает биты 16-21 выражения; ЕХР2(выражение) - возвращает 2 вьфажения; Ш02(вьфажение) - возвращает целую часть 1о§2(выражение). Операции Ассемблер поддерживает различные операторы, описанные ниже. При их использовании можно применять скобки. Логическое НЕ 1 Обозначение: ! Описание: унарный оператор, возвращает 1, если выражение равно нулю, и О, если выражение было не равно нулю. Приоритет: 14. Пример: Idl r16,!0xf0 ; Загрузить в г16 0x00 Побитовое НЕ Обозначение: ~ Описание: унарный оператор, который возвращаает исходное выражение со всеми инвертированными битами. Приоритет: 14. Пример: Idi ne.OxfO ; Загрузить в г16 OxOf Унарный минус Обозначение: - Описание: возвращает число с измененным на противоположный знаком. Умножение Обозначение: * Описание: возвращает результат умножения двух чисел. Приоритет: 13. I Пример: Idi гЗО,1аЬе1*2 ; Загрузить в регистр гЗО ГаЬеЬг I Деление [ Обозначение: / Описание: возвращает целую часть от деления левого параметра на правый. Приоритет: 13. I Пример: Idi гЗО, label/2 ; Загрузить в регистр гЗО label/2 i Сложение ; Обозначение: + Описание: возвращает сумму двух чисел. Приоритет: 12. Пример: Idi г30,с1+с2 ; Загрузить в регистр гЗО с1+с2 Вычитание Обозначение: - Описание: возвращает результат вычитания правого числа из левого. Приоритет: 12. Пример: Idi r17,c1-c2 ; Загрузить в регистр гЗО с1-с2 Сдвиг влево Обозначение: « Описание: возвращает значение левого числа, сдвинутое влево на число раз, равное правому числу. Приоритет: И. Пример: Idi r17,1«3 ; Загружает в регистр г17 число 1, ; сдвинутое влево на 3 бита Сдвиг вправо Обозначение:» Описание: возвращает значение левого числа, сдвинутое вправо на число раз, равное правому числу. Приоритет: И. Пример: Idi r17,1»2 ; Загружает в регистр г17 число 1, ; сдвинутое вправо на 2 бита Меньше Обозначение: < Описание: возвращает 1, если первое число меньше второго, иначе-О. Приоритет: 10. Пример: ori rl8,bitmask.(c1<c2)»-1 Меньше или равно Обозначение: <= Описание: возвращает 1, если первое число меньще второго или равно ему, иначе - 0. Приоритет: 10. 1* Пример: orl r18,bitmasl<*(c1<=c2)+1 ]. Больше Обозначение: > ( Описание: возвращает 1, если первое число больще второго, ина-Че -0. Приоритет: 10. . Пример: ori r18,bitmasl<*(c1>c2)+1 Больше или равно г Обозначение: >= Описание: возвращает 1, если первое число больще второго или равно ему, иначе - 0. Приоритет: 10. Пример: ori r18,bitmasl<«(c1>=c2)+1 Равно Обозначение: = Описание: возвращает 1, если первое число равно второму, иначе-О. Приоритет: 9 Пример: andi rl9, bitmask«(c1==c2)+1 Не равно Обозначение: != Описание: возвращает 1, если первое число не равно второму, иначе - 0. Приоритет: 9. . Пример: .SET flag=(c1!=c2) Побитовое И Обозначение: & Описание: возвращает результат побитной операции «И» между операндами.- [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [ 32 ] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] 0.001 |