📄 example2.asm
字号:
*****************************************
* *
* 学习循环操作指令:BANZ *
* *
*****************************************
.title "example2.asm"
.mmregs
STACK .usect "STACK",10H ;堆栈的设置
.bss x,5 ;为变量分配6个字的存储空间
.bss y,1
.def start
.data
table: .word 10,20,3,4,5 ;x1,x2,x3,x4,x5
.text
start: STM #0,SWWSR ;插入0个等待状态
STM #STACK+10H,sp ;设置堆栈指针
STM #x,AR1 ;AR1指向x
RPT #4 ;下一条被重复执行5遍
MVPD table,*AR1+ ;把程序存储器中的数据传送到数据存储器
LD #0,A ;A清零
CALL SUM ;调用求和函数
end: B end
SUM: STM #x,AR3 ;AR3指向x
STM #4,AR2 ;AR2=4
loop: ADD *AR3+,A ;*AR3+A-->A,然后AR3+
BANZ loop,*AR2- ;如果AR2的值不为0,则跳到loop处;否则执行下一条指令
STL A,*(y) ;把A的低16位赋给变量y
RET
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -