33 lines
491 B
NASM
33 lines
491 B
NASM
; All ptrs in ds segment, pointing to a node as returned by malloc
|
||
|
||
; in ax ptr car
|
||
; bx ptr cdr
|
||
; out di ptr con
|
||
cons:
|
||
push cx ; length for malloc
|
||
push dx
|
||
mov cx,4
|
||
mov dl,0x01 ; type for cons
|
||
call malloc
|
||
pop dx
|
||
pop cx
|
||
mov word [di+0x04],ax
|
||
mov word [di+0x06],bx
|
||
ret
|
||
|
||
; in ax ptr con
|
||
; out di ptr car
|
||
car:
|
||
mov si,ax
|
||
; TODO: type check
|
||
mov di,[si+0x04]
|
||
ret
|
||
|
||
; in ax ptr con
|
||
; out di ptr cdr
|
||
cdr:
|
||
mov si,ax
|
||
; TODO: type check
|
||
mov di,[si+0x06]
|
||
ret
|