📄 table.s
字号:
// c code tables-- compile to register/.globl _regtab.data_regtab=. 106.; cr106 30.; cr70 31.; cr70 32.; cr32 33.; cr32 37.; cr37 38.; cr37 98.; cr100 99.; cr100 80.; cr80 40.; cr40 41.; cr40 / - like + 42.; cr42 43.; cr43 14.; cr43 44.; cr43 45.; cr45 46.; cr40 55.; cr40 48.; cr40 49.; cr49 70.; cr70 71.; cr70 72.; cr72 73.; cr73 74.; cr74 75.; cr75 76.; cr72 78.; cr70 85.; cr70 79.; cr79 102.; cr102 51.; cr51 52.; cr52 56.; cr56 57.; cr57 58.; cr58 59.; cr59 91.; cr91 82.; cr82 83.; cr82 84.; cr82 86.; cr86 87.; cr86 88.; cr86 16.; cr16 92.; cr92 17.; cr43 18.; cr74 109.; cr109 0.text/ gotocr102:%a,n jmp A1%n*,n F* jmp #1(R)/ callcr100:%a,n jsr pc,IA1%n*,n F* jsr pc,#1(R)%n,n F jsr pc,(R)/ addressiblecr106:%z,n clr R%zf,n clrf R%a,n%ad,n movB1 A1,R%af,n movof A1,R%n*,n%nd*,n F* movB1 #1(R),R%nf*,n F* movof #1(R),R%al,n mov A1+,R+ mov A1,R%nl*,n F* mov #1+2(R),R+ mov #1(R),R%n,n F/ ++,-- postfixcr32:%a,1 movB1 A1',R I'B1 A1''%aw,n mov A1',R I A2,A1''%e*,1 F1* movB1 #1(R1),R I'B1 #1(R1)%n*,1 F* movB1 #1(R),-(sp) I'B1 #1(R) movB1 (sp)+,R%ew*,n F1* mov #1(R1),R I A2,#1(R1)%nw*,n F* mov #1(R),-(sp) I A2,#1(R) mov (sp)+,R%al,1 F I $1,A1+ V A1%el*,1 F1* mov #1+2(R1),R+ mov #1(R1),R I $1,#1+2(R1) V #1(R1)%nl*,1 F* mov #1+2(R),-(sp) mov #1(R),-(sp) I $1,#1+2(R) V #1(R) mov (sp)+,R mov (sp)+,R+/ - unary, ~cr37:%n,n%nf,n F IBF R%nl,n F I R I R+ V R/ =cr80:%a,n%ad,nf S movB1 R,A1%af,nf S movfo R,A1%nd*,af F* S movf R,#1(R)%n*,aw F* movB1 A2,#1(R) movB1 #1(R),R%nf*,af F* S movfo R,#1(R)%n*,e F* S1 movB1 R1,#1(R) movB1 R1,R%ed*,nf S F1* movf R,#1(R1)%ef*,nf S F1* movfo R,#1(R1)%n*,n%nd*,nf FS* S movB1 R,*(sp)+%nf*,nf FS* S movfo R,*(sp)+%al,nl S mov R+,A1+ mov R,A1%el*,nl S F1* mov R+,2+#1(R1) mov R,#1(R1)%nl*,nl FS* S mov R,*(sp) add $2,(sp) mov R+,*(sp)+/ field assign, value in reg.cr16:%a,n S bicB1 Z,A1' bisB1 R,A1''%e*,n% [fas1]%n*,n SS F* bicB1 Z,#1(R) bisB1 (sp),#1(R) mov (sp)+,R/ +, -, |, &~, <<cr40:%n,z F%n,1 F I' R%[add1:]%n,aw%nf,ad F IB2 A2,R%[add2:]%n,ew*%nf,ed* F S1* IB2 #2(R1),R%[add3:]%n,e%nf,ef F S1 IBF R1,R%[add4:]%n,nw*%nf,nd* SS* F IB2 *(sp)+,R%[add5:]%n,n%nf,nf SS F IBF (sp)+,R%nl,c%nl,au F I A2,R+ V R%nl,eu F S1 I R1,R+ V R%nl,al F I A2,R I A2+,R+ V R%[addl1:]%nl,el F S1 I R1+,R+ V R I R1,R%[addl2:]%nl,nl SS F I (sp)+,R I (sp)+,R+ V R/ ^ -- xorcr49:%n,e% [add3]%n,n FS S xor R,(sp) mov (sp)+,R%nl,el% [addl1]%nl,nl SS F I R,(sp) mov (sp)+,R I R+,(sp) mov (sp)+,R+/ >> (all complicated cases taken care of by << -)cr45:%n,1 F asr R/ * -- R must be odd on integerscr42:%n,aw%nf,ad% [add1]%n,ew*%nf,ed*% [add2]%n,e%nf,ef% [add3]%n,n%nf,nf% [add5]/ / R must be odd on integerscr43:%n,aw F T I A2,R-%n,ew* F T S1* I #2(R1),R-%n,e F T S1 I R1,R-%n,n SS F T I (sp)+,R-%nf,ad% [add1]%nf,ed*% [add2]%nf,ef% [add3]%nf,nf% [add5]/ =+, =-, =|, =&~cr70:%[addq1:]%aw,aw I A2,A1' mov A1'',R%[addq1a:]%a,aw%ad,ad movB1 A1',R IBF A2,R movB1 R,A1''%[addq2:]%aw,nw* S* I #2(R),A1' mov A1'',R%[addq3:]%aw,n S I R,A1' mov A1'',R%[addq4:]%ew*,nw* S* F1* I #2(R),#1(R1) mov #1(R1),R%[addq4a:]%ad,ef movf A1',R S1 IBF R1,R movf R,A1''%[addq5:]%a,n%ad,nf SS movB1 A1',R IBF (sp)+,R movB1 R,A1''%[addq6:]%af,nf SS movof A1',R IBF (sp)+,R movfo R,A1''%[addq7:]%ew*,n S F1* I R,#1(R1) mov #1(R1),R%[addq8:]%nw*,n SS F* I (sp)+,#1(R) mov #1(R),R%[addq9:]%n*,n FS* SS movB1 *2(sp),R IBF (sp)+,R movB1 R,*(sp)+%[addq9a:]%nd*,nf SS F* movB1 #1(R),R IBF (sp)+,R movB1 R,#1(R)%[addq10:]%nf*,nf SS F* movof #1(R),R1 IBF (sp)+,R1 movfo R1,#1(R) movf R1,R%al,c I A2,A1+ V A1 F%al,al I A2+,A1+ V A1 I A2,A1 F%al,nl S I R+,A1+ V A1 I R,A1 F%nl*,c F* I A2,#1+2(R) V #1(R) mov #1+2(R),R+ mov #1(R),R%nl*,al F* I A2+,#1+2(R) V #1(R) I A2,#1(R) mov #1+2(R),R+ mov #1(R),R%nl*,nl SS F* I (sp)+,#1(R) I (sp)+,#1+2(R) V #1(R) mov #1+2(R),R+ mov #1(R),R/ =*, =<< (for integer multiply, R must be odd)cr72:%a,aw%ad,ad% [addq1a]%ad,ef% [addq4a]%a,n%ad,nf% [addq5]%af,nf% [addq6]%n*,n% [addq9]%nd*,nf% [addq9a]%nf*,nf% [addq10]/ =/ ; R must be odd on integerscr73:%a,aw movB1 A1',R V R- IBF A2,R- movB1 R-,A1''%a,n SS movB1 A1',R V R- I (sp)+,R- movB1 R-,A1''%e*,n SS F1* movB1 #1(R1),R V R- I (sp)+,R- movB1 R-,#1(R1)%n*,n FS* SS movB1 *2(sp),R V R- I (sp)+,R- movB1 R-,*(sp)+%ad,ad% [addq1a]%ad,ef% [addq4a]%ad,nf% [addq5]%af,nf% [addq6]%nd*,nf% [addq9a]%nf*,nf% [addq10]/ =mod; R must be odd on integerscr74:%a,aw movB1 A1',R V R- I A2,R- movB1 R,A1''%a,n SS movB1 A1',R V R- I (sp)+,R- movB1 R,A1''%e*,n SS F1* movB1 #1(R1),R V R- I (sp)+,R- movB1 R,#1(R1)%n*,n FS* SS movB1 *2(sp),R V R- I (sp)+,R- mov R,*(sp)+/ =^ -- =xorcr79:%aw,n% [addq3]%ab,n SS movb A1',R xor R,(sp) mov (sp)+,R movb R,A1''%n*,n FS* movB1 *(sp),-(sp) S xor R,(sp) movB1 (sp)+,R movB1 R,*(sp)+/ =>> (all complicated cases done by =<< -)cr75:%a,1 asrB1 A1' movB1 A1'',R%n*,1 F* asrB1 #1(R) movB1 #1(R),R/ << for longscr91:%nl,aw% [add1]%nl,ew*% [add2]%nl,e% [add3]%nl,nw*% [add4]%nl,n% [add5]/ int -> floatcr51:%aw,n movif A1,R%nw*,n F* movif #1(R),R%n,n F movif R,R/ float, double -> intcr52:%nf,n F movfi R,R/ double (float) to longcr56:%nf,n F setl movfi R,-(sp) mov (sp)+,R mov (sp)+,R+ seti/ long to doublecr57:%al,n setl movif A1,R seti%nl*,n F* setl movif #1(R),R seti%nl,n FS setl movif (sp)+,R seti/ integer to longcr58:%eu,n F1! clr R%nu,n F mov R,R1 clr R%e,n F1! sxt R%n,n F mov R,R1 sxt R/ long to integercr59:%al,n mov A1+,R%nl*,n F* mov #1+2(R),R/ *, /, remainder for longs.cr82:%nl,nl SS FS jsr pc,I add $10,sp/ =*, =/, =rem for longs/ Operands of the form &x op y, so stack space is known.cr86:%n,nl SS FS jsr pc,I add $6,sp/ convert integer to character (sign extend)cr109:%n,n F movb R,R// c code tables -- compile for side effects./ Also set condition codes properly (except for ++, --)/.globl _efftab.data_efftab=. 30.; ci70 31.; ci70 32.; ci70 33.; ci70 80.; ci80 70.; ci70 71.; ci70 / - like + 78.; ci78 79.; ci79 85.; ci78 75.; ci75 76.; ci76 16.; ci16 116.; ci116 0.text/ =ci80:%[move1:]%a,z%ad,zf I'B1 A1%[move2:]%n*,z%nd*,zf F* I'B1 #1(R)%[move3:]%a,aw%ab,a IBE A2,A1%[move4:]%ab,n*%a,nw* S* IBE #2(R),A1%[move5:]%a,n S IB1 R,A1%[move6:]%n*,aw%nb*,a F* IBE A2,#1(R)%[move7:]%n*,ew*%nb*,e* F* S1* IBE #2(R1),#1(R)%[move8:]%n*,e F* S1 IB1 R1,#1(R)%[move9:]%e*,nw*%eb*,n* S* F1* IBE #2(R),#1(R1)%[move10:]%e*,n S F1* IB1 R,#1(R1)%[move11:]%n*,nw*%nb*,n* FS* S* IBE #2(R),*(sp)+%[move12:]%n*,n FS* S IB1 R,*(sp)+%aw,nf S movfi R,A1%ew*,nf S F1* movfi R,#1(R1)%al,z clr A1 clr A1+%nl*,z F* clr #1(R) clr 2+#1(R)%[move13a:]%al,aw I A2,A1+ V A1%al,nw* S* mov #2(R),A1+ V A1%al,n S mov R,A1+ V A1%al,nf S setl movfi R,A1 seti%el*,nf S F1* setl movfi R,#1(R1) seti%[move13:]%al,al I A2,A1 I A2+,A1+ V A1%[move14:]%al,nl* S* I #2(R),A1 I #2+2(R),A1+ V A1%[move15:]%al,nl S I R,A1 I R+,A1+ V A1%[move14a:]%nl*,aw F* I A2,#1+2(R) V #1(R)%[move16a:]%nl*,al F* I A2+,#1+2(R) V #1(R) I A2,#1(R)%[move16:]%el*,nl S F1* I R+,#1+2(R1) V #1(R1) I R,#1(R1)%nl*,n SS F* mov (sp)+,#1+2(R) V #1(R)%[move17:]%nl*,nl SS F* I (sp)+,#1(R) I (sp)+,#1+2(R) V #1(R)/ =| and =& ~ci78:%a,aw%ab,a% [move3]%a,n% [move5]%n*,aw%nb*,a% [move6]%n*,ew*%nb*,e*% [move7]%n*,e% [move8]%e*,nw*%eb*,n*% [move9]%e*,n% [move10]%n*,nw*%nb*,n*% [move11]%n*,n% [move12]%al,c%al,au% [move13a]%al,al% [move13]%al,nl*% [move14]%al,nl% [move15]%nl*,c% [move14a]%nl*,al% [move16a]%el*,nl% [move16]%nl*,nl% [move17]/ =^ci79:%al,nl% [move15]%el*,nl% [move16]%nl*,nl FS* S I R,*(sp) mov (sp)+,R I R+,2(R)/ =+ci70:%n*,z%a,z%a,1 I'B1 A1%aw,aw% [move3]%aw,nw*% [move4]%aw,n% [move5]%n*,1% [move2]%ew*,nw*% [move9]%a,nw* S* movB1 A1',R1 I #2(R),R1 movB1 R1,A1''%a,n S movB1 A1',R1 I R,R1 movB1 R1,A1''%ew*,n% [move10]%nw*,n% [move12]%n*,n SS F* movB1 #1(R),R1 I (sp)+,R1 movB1 R1,#1(R)%al,c%al,au% [move13a]%al,al% [move13]%al,nl*% [move14]%al,nl% [move15]%nl*,c%nl*,au% [move14a]%nl*,al% [move16a]%el*,nl% [move16]%nl*,nl% [move17]/ =>> (all harder cases handled by =<< -)ci75:%a,1 asrB1 A1%n*,1 F* asrB1 #1(R)/ =<<ci76:%a,1 aslB1 A1%n*,1 F* aslB1 #1(R)%r,aw ash A2,A1%r,nw* S* ash #2(R),A1%r,n S ash R,A1/ =<< for longscr92:%al,aw F ashc A2,R mov R,A1 mov R+,A1+%al,n SS F ashc (sp)+,R mov R,A1 mov R+,A1+%nl*,n FS* SS mov 2(sp),R mov 2(R),R+ mov (R),R ashc (sp)+,R mov R,*(sp) add $2,(sp) mov R+,*(sp)+/ field = ...ci16:%a,a bicB1 Z,A1' bisB1 A2,A1''%a,n S bicB1 Z,A1' bisB1 R,A1''%n*,a F* bicB1 Z,#1(R) bisB1 A2,#1(R)%[fas1:]%e*,n S F1* bicB1 Z,#1(R1) bisB1 R,#1(R1)%n*,e F* S1 bicB1 Z,#1(R) bisB1 R1,#1(R)%n*,n SS F* bicB1 Z,#1(R) bisB1 (sp)+,#1(R)// c code tables-- set condition codes/.globl _cctab.data_cctab=. 106.; cc60 28.; rest 55.; rest 34.; rest 35.; rest 36.; rest 37.; rest 40.; rest 41.; rest 42.; rest 43.; rest 81.; cc81 / & as in "if ((a&b)==0)" 48.; rest 60.; cc60 61.; cc60 62.; cc60 63.; cc60 64.; cc60 65.; cc60 66.; cc60 67.; cc60 68.; cc60 69.; cc60 72.; rest 73.; rest 79.; rest 0.text/ relationalscc60:%a,z%ad,zf% [move1]%af,z movof A1,R%n*,z%nd*,zf% [move2]%nf*,z F* movof #1(R),R%n,z%nf,zf FC%aw,aw%ab,ab% [move3]%nw*,aw%nb*,ab% [move6]%n,aw%nf,ad% [add1]%nw*,ew*%nb*,eb*% [move7]%nw*,e% [move8]%n,ew*%nf,ed*% [add2]%n,e%nf,ef% [add3]%nw*,nw*%nb*,nb*% [move11]%nw*,n% [move12]%n,n%nf,nf% [add5]%al,z tst A1 X0 tst A1+ X1%al,c%al,au tst A1 X0 cmp A1+,A2 X1%[lcmp1:]%al,al I A1,A2 X0 I A1+,A2+ X1%nl*,z F* tst #1(R) X0 tst #1+2(R) X1%nl*,c%nl*,au F* tst #1(R) X0 cmp #1+2(R),A2 X1%[lcmp2:]%nl*,al F* I #1(R),A2 X0 I #1+2(R),A2+ X1%nl,z F tst R X0 tst R+ X1%nl,c%nl,au F tst R X0 cmp R+,A2 X1%[lcmp3:]%nl,al F I R,A2 X0 I R+,A2+ X1%[lcmp4:]%nl*,el* F* S1* I #1(R),#2(R1) X0 I #1+2(R),#2+2(R1) X1%[lcmp5:]%nl,el* F S1* I R,#2(R1) X0 I R+,#2+2(R1) X1%[lcmp6:]%nl,nl FS S mov R,-(sp) mov 4(sp),R mov (sp)+,2(sp) I (sp)+,(sp)+ X0 I R,R+ X1/ & as in "if ((a&b) ==0)"cc81:%a,a% [move3]%n*,a% [move6]%n,a% [add1]%n,e% [add3]%n,n% [add5]%al,c%al,au /bit $0,A1 /X0 bit A2,A1+ X1%nl*,c%nl*,au F* /bit $0,#2(R) /X0 bit A2,#2+2(R) X1%al,al% [lcmp1]%nl*,al% [lcmp2]%nl,al% [lcmp3]%nl*,el*% [lcmp4]%nl,el*% [lcmp5]%nl,nl% [lcmp6]%nl,c%nl,au F /bit $0,R /X0 bit A2,R+ X1/ set codes rightrest:%n,n%nf,nf H// c code tables-- expression to -(sp)/.globl _sptab.data_sptab=. 106.; cs106 40.; cs40 41.; cs40 55.; cs40 48.; cs40 58.; cs58 56.; cs56 0.text/ namecs106:%z,n%zf,n clrB1 -(sp)%aw,n mov A1,-(sp)%nw*,n F* mov #1(R),-(sp)%al,n mov A1+,-(sp) mov A1,-(sp)/ +, -, |, &~cs40:%a,1 FS I' (sp)%a,aw FS I A2,(sp)%a,nw* FS S* I #2(R),(sp)%a,n FS S I R,(sp)/ integer to longcs58:%nu,n FS clr -(sp)%n,n FS sxt -(sp)/ float to longcs56:%nf,n F setl movfi R,-(sp) seti/ setup for structure assignci116:%n,e F! S1!%n,n SS F! mov (sp)+,r1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -