mirror of
https://github.com/AntKrotov/oberon-07-compiler.git
synced 2026-10-05 09:45:47 +00:00
мелкие правки
This commit is contained in:
1 parent
9561e3d7a8
commit
69497b08f9
4 files changed
+38
-37
No files matched your search
+12
-1
@@ -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,
|
||||
при входе в процедуру не сохраняется.
|
||||
|
||||
Reference in new issue
Block a user