⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lib

📁 《编译方法》课程设计内容2.《编译方法》课程设计内容
💻
字号:
\\      End of run routine\L1:       HALT\\      Print a number recursively\L2:       STI  R3,4(R1)			 \ Save the return address       LDI  8(R1),R15			 \ Copy arg to R15       LDA  10(R0),R5			 \ Constant 10       DIV  R15,R5                       \ Non-zero if more than one digit       BZE  L3				 \ Branch if only 1 digit\       STI  R5,12(R1)			 \ Save on stack for later       STI  R5,24(R1)			 \ Copy to new stack frame       LDA  L2,R2			 \ Address to call       STI  R1,16(R1)			 \ Save stack pointer       LDA  16(R1),R1			 \ Increment stack pointer       BAL  R2,R3			 \ Call recursively       LDA  10(R0),R15			 \ Constant 10 in R15       LDI  8(R1),R5			 \ Original number       LDI  12(R1),R6			 \ Divided number       MUL  R6,R15			 \ Multiply back by 10 in R15       SUB  R5,R15			 \ Subtract from original for digitL3:       LDA  48(R0),R5			 \ ASCII '0' in R5       ADD  R5,R15			 \ Add to get desired digit in R15       TRAP				 \ Print the digit       LDI  4(R1),R2			 \ Return address in R2       LDI  0(R1),R1			 \ Restore stack pointer       BAL  R2,R3			 \ Return\\      Print a string\L4:       STI  R3,4(R1)			 \ Save the return address       LDI  8(R1),R5			 \ String pointer in R5       LDA  16777216(R0),R7		 \ 256 cubed for shifting 24 bits rightL5:       LDI  0(R5),R6			 \ Next char in top byte  of R6       LDR  R7,R15			 \ Constant 256 cubed       DIV  R6,R15			 \ Char in R15       BZE  L6				 \ EOS branch to exit       TRAP				 \ Print the char       LDA  1(R5),R5			 \ Step to next char       BRA  L5				 \ Round againL6:       LDI  4(R1),R2			 \ Return address in R2       LDI  0(R1),R1			 \ Restore stack pointer       BAL  R2,R3			 \ Return\

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -