Город МОСКОВСКИЙ
00:03:15

The Nand Game | Software programs

Аватар
Рецепты диетических десертов
Просмотры:
95
Дата загрузки:
21.10.2023 14:29
Длительность:
00:03:15
Категория:
Лайфстайл

Описание

Programs for FUNCTIONS levels

###################
# CALL

# DEFINE SHARED CONSTANTS
# ARGS = 1
# LOCALS = 2
# RETVAL = 6

# PUSH ARGS
A= ARGS
D=*A
PUSH_D

# PUSH LOCALS
A= LOCALS
D=*A
PUSH_D

# PUSH ADDRESS AFTER JUMP
A= BACK
D=A
PUSH_D

# CALCULATE NEW ARGS ADDRESS
A=0
D=*A
A= argumentCount
D=D-A
A=3
D=D-A

A= ARGS
*A=D

# JUMP TO GIVEN ADDRESS
A= functionName
JMP

# RESTORE STATE
BACK:
# STORE ARGS TEMPORARILY (at 0xFF)
A= ARGS
D=*A
A=0xFF
*A=D

# RESTORE LOCALS FROM STACK
POP_D
A= LOCALS
*A=D

# RESTORE ARGS FROM STACK
POP_D
A= ARGS
*A=D

# SP = PREVIOUS ARGS VALUE
A= 0xFF
D=*A
A=0
*A=D

# PUSH RETVAL ON STACK
A= RETVAL
D=*A
PUSH_D

#####################
# FUNCTION

functionName:
A=0
D=*A
A= LOCALS
*A=D

A=0
D=*A
A= localsCount
D=D+A

A=0
*A=D

#####################
# RETURN

POP_D
A= RETVAL
*A=D

A= LOCALS
D=*A
A=0
*A=D

POP_D
A=D
JMP

####################
# PUSH_ARG

A= ARGS
D=*A
A= index
D=D+A
A=D
D=*A
PUSH_D

####################
# POP_ARG

A=ARGS
D=*A
A= index
D=D+A

# USE RETVAL AS TEMPORARY SLOT
# TO STORE ADDRESS
A= RETVAL
*A=D

POP_D
A= RETVAL

A=*A
*A=D

##################
# PUSH_LOCAL

A= LOCALS
D=*A
A= index
D=D+A

A=D
D=*A
PUSH_D

###################
# POP_LOCAL

A= LOCALS
D=*A
A= index
D=D+A

# USE RETVAL AS TEMPORARY SLOT
# TO STORE ADDRESS
A= RETVAL
*A=D

POP_D
A= RETVAL

A=*A
*A=D

#########################

2022 playlist https://youtube.com/playlist?list=PLXyMbqxbNx1AP2mJaXw5GWfqJaF4q-cBk

2020 playlist : https://youtube.com/playlist?list=PLXyMbqxbNx1A9_cTnZ4hI2vYttfJCvYJA

Рекомендуемые видео