мелкие правки

This commit is contained in:
AntKrotov committed 2021-01-06 18:52:23 +03:00
1 parent 9561e3d7a8
commit 69497b08f9
4 files changed
+38 -37

No files matched your search

+12 -1
View File
@@ -320,11 +320,22 @@ Oberon-реализациях выполнение такой операции
МашКом - целочисленная константа [0..65535] (в том числе и константное
выражение).
Например:
Примеры:
PROCEDURE [code] WFI
0BF30H; (* wfi *)
(* сумма квадратов (a*a + b*b) -> r0 *)
PROCEDURE [code] SqrSum (a, b: INTEGER): INTEGER
0B430H, (* push {r4, r5} *) (* сохранить все используемые регистры,
кроме r0, r1, r2, r3 *)
09C02H, (* ldr r4, [sp, 8] *) (* r4 <- a *)
09D03H, (* ldr r5, [sp, 12] *) (* r5 <- b *)
04364H, (* muls r4, r4 *) (* r4 := r4 * r4 *)
0436DH, (* muls r5, r5 *) (* r5 := r5 * r5 *)
01960H, (* adds r0, r4, r5 *) (* r0 := r4 + r5; результат в r0 *)
0BC30H; (* pop {r4, r5} *) (* восстановить регистры *)
Компилятор автоматически добавляет к такой процедуре команду возврата
(bx LR). Способ передачи параметров и результата не изменяется. Регистр LR,
при входе в процедуру не сохраняется.