📄 as24.s
字号:
/// a4 -- pdp-11 assembler pass 2oset: mov r2,-(sp) mov r3,-(sp) mov (r5)+,r3 mov r1,r2 bic $!777,r1 add r3,r1 add $8,r1 mov r1,(r3)+ / next slot mov r3,r1 add $1006,r1 mov r1,(r3)+ / buf max mov r0,(r3)+ mov r2,(r3)+ / seek addr mov (sp)+,r3 mov (sp)+,r2 rts r5putw: mov r1,-(sp) mov r2,-(sp) mov (r5)+,r2 mov (r2)+,r1 / slot cmp r1,(r2) / buf max bhis 1f mov r0,(r1)+ mov r1,-(r2) br 2f1: tst (r2)+ mov r0,-(sp) jsr r5,flush1 mov (sp)+,r0 mov r0,*(r2)+ add $2,-(r2)2: mov (sp)+,r2 mov (sp)+,r1 rts r5flush: mov (r5)+,r2 cmp (r2)+,(r2)+flush1: mov (r2)+,0f mov (r2)+,r1 mov r1,0f+2 / seek address mov fout,r0 sys indir; 9f .data9: sys lseek; 0:..; ..; 0 .text bic $!777,r1 add r2,r1 / write address mov r1,0f mov r2,r0 bis $777,-(r2) add $1,(r2) / new seek addr adc -(r2) cmp -(r2),-(r2) sub (r2),r1 neg r1 mov r1,0f+2 / count mov r0,(r2) / new next slot mov fout,r0 sys indir; 9f jes wrterr .data9: sys write; 0:..; .. .text rts r5wrterr: mov $1,r0 sys write; 9f; 8f-9f jmp saexit9: <as: write error on output\n>; 8:readop: mov savop,r4 beq 1f clr savop rts pc1: jsr pc,getw1 cmp r4,$200 blo 1f cmp r4,$4000 blo 2f add $usymtab-4000,r4 rts pc2: add $symtab-1000,r41: rts pcgetw: mov savop,r4 beq getw1 clr savop rts pcgetw1: dec ibufc bgt 1f movb fin,r0 sys read; inbuf; 512. bes 3f asr r0 mov r0,ibufc bne 2f3: mov $4,r4 sev rts pc2: mov $inbuf,ibufp1: mov *ibufp,r4 add $2,ibufp rts pc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -