题⽬1:对内存地址0X3000开始的100个字内存单元填⼊0X10000001----0X10000064,将每个字单元进⾏64位累加,结果送⼊其后容闲内存单元。
代码:
AREA test,CODE,READONLY
ENTRY
CODE32
START
MOV R1,#0X3000 ;内存地址起始位置
MOV R2,#100 ;100个内存
MOV R3,#0X10000001 ;内存单元填入的值
MOV R4,#0 ;低位
MOV R5,#0 ;高位
LOOP
STR R3,[R1] ;向内存单元R1填入值R3
;结果
ADDS R4,R4,R3
ADCS R5,R5,#0
ADD R1,R1,#4
ADD R3,R3,#1 ;R3自加1
SUB R2,R2,#1 ;R2自减1
CMP R2,#0 ;R2与0作比较
;不等于
BNE LOOP
;等于
STR R4,[R1]
ADD R1,R1,#4 ;R1自加1
STR R5,[R1]
STOP
B STOP
END
运行结果:
题目2:实现整数除法123/22,得出商和余数。
AREA test,CODE,READONLY
ENTRY
CODE32
START
MOV R1,#123
MOV R2,#22
MOV R3,#0
MOV R4,#0
LOOP
SUB R1,R1,R2
ADD R3,R3,#1
CMP R1,R2
BHI LOOP
MOV R4,R1
STOP
B STOP
END
运行结果: