📄 fxh.s
字号:
/// fxh -- array constant offset.globl consub.globl getsym.globl geti.globl error.globl geticon/ turn constant subscripts into offset./ in: r3 -> symtab/ r1 -> just beyond (/ out:r0 has offsetconsub: mov symtab(r3),r0 bic $!70,r0 cmp r0,$20 / test class == array beq 1f jsr r5,error; 17. clr r0 rts r51: mov r5,-(sp) mov r4,-(sp) mov r3,-(sp) mov r2,-(sp) clr r4 / accumulated offset mov symtab+2(r3),r2 / ptr to declarator mov (r2)+,-(sp) / dimensionality mov $1,r5 / prod of declarators1: jsr r5,geticon br 9f cmp r0,(r2) bgt 3f dec r0 bge 2f3: jsr r5,error; 19. / out of range clr r02: mov r5,-(sp) mpy r0,r5 add r5,r4 mov (sp)+,r5 mpy (r2)+,r5 jsr r5,getsym cmp r0,$36. / comma bne 1f dec (sp) bgt 1b jsr r5,error; 18. / wrong subscript count br 1b1: cmp r0,$34. / ) beq 1f9: jsr r5,error; 20. clr r01: cmp (sp)+,$1 beq 1f jsr r5,error; 18. / subscript count1: mov (sp)+,r2 mov (sp)+,r3 movb symtab+1(r3),r5 mpy r4,r5 mov r5,r0 mov (sp)+,r4 mov (sp)+,r5 rts r5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -