📄 init.asm
字号:
.title "init.asm"
.def init
.ref DotP
short .equ 2
word .equ 4
.sect "init_data"
table .short 1,3,5,7,9,11,13,15,17,19
.short 21,23,25,27,29,31,33,35,37,39
.short 41,43,45,47,49,51,53,55,57,59
.short 60,58,56,54,52,50,48,46,44,42
.short 40,38,36,34,32,30,28,26,24,22
.short 20,18,16,14,12,10,8,6,4,2
.short 0
a .usect "var",30 * short
x .usect "var",30 * short
y .usect "var",1 * short
.sect "init_code"
init:
mvk .s1 table,A0 ; A0 = &table
mvkh .s1 table,A0
mvk .s1 a,A1 ; A1 = &a
mvkh .s1 a,A1
mvk .s2 61,B1 ; loop counter->61 xfers
loop1: ldh .d1 *A0++,A5
nop 4
sth .d1 A5,*A1++
sub .L2 B1,1,B1
[B1] b .s1 loop1
nop 5
last: b .s1 main
nop 5
;**********************************************************
;*** main code ***
;**********************************************************
.sect "main_code"
main: mvk .s1 a,a4 ; load 1st arg (*a[])
mvkh .s1 a,a4
mvk .s2 x,b4 ; load 2nd arg (*x[])
mvkh .s2 x,b4
mvk .s2 30,b1 ; load loop count
mvk .s1 ret,a5 ; save return-to address
mvkh .s1 ret,a5
b .s2 DotP ; call subroutine
nop 5
ret: mvk .s1 y,a1
mvkh .s1 y,a1
sth .d1 a4,*a1 ; store returned result
end: b $ ; endless loop
nop 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -