added calling convesions
All checks were successful
Build Typst PDFs (Docker) / build-typst (push) Successful in 35s

This commit is contained in:
alexander
2026-02-11 15:27:23 +01:00
parent 0bd2473b5c
commit b90683421e

View File

@@ -336,7 +336,74 @@
Wort: $64$ Bit
]
*Calling Convensions*
#cetz.canvas({
import cetz.draw : *
let cellHeight = 0.4
let cellWidth = 2
let c(y, c, x: 0, number: "") = {
rect((x, cellHeight*y), (x + cellWidth, cellHeight*(y+1)), fill: white)
content((x+ cellWidth/2, cellHeight*(y+0.5)), c)
content((x - 0.2, cellHeight*(y+0.5)), number, anchor: "mid-east")
}
c(0, "3.Param", number: raw("0x3FFFFFFFFFFFFFF8"))
c(1, "2.Param", number: raw("0x3FFFFFFFFFFFFFF0"))
c(2, "1.Param", number: raw("0x3FFFFFFFFFFFFFE8"))
c(3, "Sicherung $1", number: raw("0x3FFFFFFFFFFFFFE0"))
c(4, "Sicherung $2", number: raw("0x3FFFFFFFFFFFFFD8"))
c(0, "Rückgabe wert", x: cellWidth)
})
#colbreak()
#text(rgb("#1a00aa"))[
*1. (Aufrufer) Parameter auf Stack ablegen*\
#raw("SUB :SP,:SP,n*8
STO $x0,:SP,0*8
STO $x1,:SP,1*8
...
STO $xn,:SP,n*8")
*2. (Aufrufer) Funktions Aufruf*\
#raw("GO $0,:Fkt")
]
#text(rgb("#aa0000"))[
*3. (Funktion) Sicherung der Register*\
#raw("SUB :SP,:SP,n*8
STO $y0,:SP,0*8
STO $y1,:SP,1*8
...
STO $yn,:SP,n*8")
*4. (Funktion) Funktions Code*\
*5. (Funktion) Schreiben des Rückgabewerts*\
#raw("
STO $r,:SP,m*8
")
*6. (Funktion) Wiederherstellung der Register*\
#raw("LDO $x0,:SP, 0*8 + k
LDO $x1,:SP, 1*8 + k
...
LDO $xn,:SP, n*8 + k
")
*7. (Funktion) Rücksprung*\
]
#text(rgb("#1a00aa"))[
*8. (Aufrufer) Lesen des Rückgabewerts*\
]
]
#bgBlock(fill: colorRandomShit)[
#subHeading(fill: colorRandomShit)[Register Register Magista]