📄 macro.out
字号:
! .MACRO SUM FROM=0, TO=9! ; \FROM \TO! MOV R\FROM,R10!COUNT .ASSIGNA \FROM+1! .AWHILE \&COUNT LE \TO! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! .ENDM!! SUM 0,5! ; 0 5 ; 0 5! MOV R0,R10 MOV R0,R10!COUNT .ASSIGNA 0+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R1,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R2,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R3,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R4,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R5,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! SUM TO=5! ; 0 5 ; 0 5! MOV R0,R10 MOV R0,R10!COUNT .ASSIGNA 0+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R1,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R2,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R3,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R4,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R5,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! SUM FROM=2, TO=5! ; 2 5 ; 2 5! MOV R2,R10 MOV R2,R10!COUNT .ASSIGNA 2+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R3,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R4,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW! MOV R\&COUNT,R10 MOV R5,R10!COUNT .ASSIGNA \&COUNT+1! .AWHILE \&COUNT LE 5! MOV R\&COUNT,R10!COUNT .ASSIGNA \&COUNT+1! .AENDW!!!; hi this is a comment ; hi this is a comment! .MACRO BACK_SLASH_SET! \(MOV #"\",R0) ! .ENDM! BACK_SLASH_SET! MOV #"\",R0 MOV #"\",R0 ! .MACRO COMM! bar ; this comment will get copied out! foo \; this one will get dropped! .ENDM! COMM! bar ; this comment will get copied out bar ; this comment will get copied out! foo \; this one will get dropped foo \; this one will get dropped! BACK_SLASH_SET! MOV #"\",R0 MOV #"\",R0 ! .MACRO PLUS2! ADD #1,R\&V1! .SDATA "\&V'1"! .ENDM!V .ASSIGNC "R"!V1 .ASSIGNA 1! PLUS2! ADD #1,R\&V1 ADD #1,R1! .SDATA "\&V'1" .byte 82,49! .MACRO PLUS1 P,P1! ADD #1,\P1! .SDATA "\P'1"! .ENDM! PLUS1 R,R1! ADD #1,R1 ADD #1,R1! .SDATA "R1" .byte 82,49!! .MACRO SUM P1! MOV R0,R10! ADD R1,R10! ADD R2,R10! \P1 ! ADD R3,R10! .ENDM!! SUM .EXITM! MOV R0,R10 MOV R0,R10! ADD R1,R10 ADD R1,R10! ADD R2,R10 ADD R2,R10! .EXITM !! .MACRO foo bar=a default=b! \bar! \default! bar! default! .ENDM! foo default=dog bar=cat! cat cat! dog dog! bar bar! default default! foo X Y! X X! Y Y! bar bar! default default! foo! a a! b b! bar bar! default default! foo bar=cat default=dog! cat cat! dog dog! bar bar! default default!!! .MACRO foo bar! HI! HI \bar! HI! .ENDM!! foo 1! HI HI! HI 1 HI 1! HI HI! foo 123! HI HI! HI 123 HI 123! HI HI! foo 1 2 3 4! foo! HI HI! HI HI ! HI HI!! ! .MACRO PUSH Rn! MOV.L \Rn,@-r15! .ENDM! PUSH R0! MOV.L R0,@-r15 MOV.L R0,@-r15! PUSH R1! MOV.L R1,@-r15 MOV.L R1,@-r15!!! .MACRO RES_STR STR, Rn! MOV.L #str\@,\Rn! BRA end_str\@! NOP!str\@ .SDATA "\STR"! .ALIGN 2!end_str\@! .ENDM! ! RES_STR "ONE",R0 ! MOV.L #str18,R0 MOV.L #str18,R0! BRA end_str18 BRA end_str18! NOP NOP!str18 .SDATA "ONE"str18: .byte 79,78,69! .ALIGN 2 .align 2!end_str18end_str18:! RES_STR "TWO",R1! MOV.L #str19,R1 MOV.L #str19,R1! BRA end_str19 BRA end_str19! NOP NOP!str19 .SDATA "TWO"str19: .byte 84,87,79! .ALIGN 2 .align 2!end_str19end_str19:! RES_STR "THREE",R2! MOV.L #str20,R2 MOV.L #str20,R2! BRA end_str20 BRA end_str20! NOP NOP!str20 .SDATA "THREE"str20: .byte 84,72,82,69,69! .ALIGN 2 .align 2!end_str20end_str20:!!!! RES_STR STR=donkey Rn=R1! MOV.L #str21,R1 MOV.L #str21,R1! BRA end_str21 BRA end_str21! NOP NOP!str21 .SDATA "donkey"str21: .byte 100,111,110,107,101,121! .ALIGN 2 .align 2!end_str21end_str21:! RES_STR donkey,R1! MOV.L #str22,R1 MOV.L #str22,R1! BRA end_str22 BRA end_str22! NOP NOP!str22 .SDATA "donkey"str22: .byte 100,111,110,107,101,121! .ALIGN 2 .align 2!end_str22end_str22:! RES_STR donkey Rn=R1! MOV.L #str23,R1 MOV.L #str23,R1! BRA end_str23 BRA end_str23! NOP NOP!str23 .SDATA "donkey"str23: .byte 100,111,110,107,101,121! .ALIGN 2 .align 2!end_str23end_str23:! .END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -