Skip to content

assemblyCall

陳鍾誠 edited this page Feb 25, 2019 · 7 revisions

組合語言的函數呼叫

call mult(x, y)

...

int mult(int a, int b) { ... }

...

使用暫存器傳遞參數            使用堆疊傳遞參數 1       使用堆疊傳遞參數 2

LD R1, x                     PUSH R1, x             PUSH R1, x
LD R2, y                     PUSH R2, y             PUSH R2, y
CALL mult                    CALL mult              CALL mult

mult:                    
// calculate R1 = R1*R2      POP R1, b              MOV FP, SP
                             POP R2, a              // access a by FP-2
// ....                                             // access b by FP-1
  RETURN

Clone this wiki locally