ARM

<!--Obj 1 - addition,substraction using data processing immediate data-->

MOV R0, #0x40
MOV R1, #0x50

ADD R2, R0, R1
SUB R3, R0, R1
MUL R4, R0, R1
my_exit: b my_exit
    
<!--Obj 2 - addition,substraction,multiplication load addressing mode-->
LDR R0,= LIST
LDR R1, [R0], #4
LDR R2, [R0], #4
LDR R3, [R0], #4
ADD R4, R1, R2
STR R4, [R0], #4

SUB R5, R1, R3
STR R5, [R0]

MUL R6, R2, R3
STR R6, [R0] 
EXIT: B EXIT

.DATA
	LIST:
		.WORD 2,3,4


    
<!--Obj 3 - and,or,xor and not using load adressing mode -->
LDR R0, = 0x20100031
LDR R1, [R0], #4
LDR  R2, [R0], #4
AND R3, R1, R2
STR R3, [R0], #4
ORR R4, R1, R2
COR R5, R1, R2
STR R5, R1, R2
MVN R6, R2
STR R6, [R0] 

MY_EXIT: B MY_EXIT
    
<!--lARGEST IN ARRAY-->
.global _start
_start:
	
	LDR R0,= COUNT
	LDR R1, [R0]
	MOV R4,#0X00
	LDR R3,=ARRAY
	
BACK: LDR R3, [R2],#4
	  CMP R4,R3
	  BGT FWD
	  MOV R4,R3
FWD: SUBS R1,R1,#01
	 BNE BACK
	 STR R4,[R2]
	 
EXIT: B EXIT

.DATA 
	COUNT: .WORD 0x05
	ARRAY: .WORD 0x15, 0x35, 0x45, 0x10, 0x45
	RESULT:
    
<!--SMALLEST IN ARRAY-->
.global _start
_start:
	
	LDR R0,= COUNT
	LDR R1, [R0]
	MOV R4,#0X00
	LDR R3,=ARRAY
	
BACK: LDR R3, [R2],#4
	  CMP R4,R3
	  BLT FWD
	  MOV R4,R3
FWD: SUBS R1,R1,#01
	 BNE BACK
	 STR R4,[R2]
	 
EXIT: B EXIT

.DATA 
	COUNT: .WORD 0x05
	ARRAY: .WORD 0x15, 0x35, 0x45, 0x10, 0x45
	RESULT:
    
<!--even and odd-->
.global _start
_start:
	
	LDR R0,= COUNT
	LDR R1, [R0]
	LDR R3,=ARRAY
	LDR R4,= EVEN
	LDR R5,= ODD
	
BACK: LDR R6, [R3],#4
	  ANDS R7,R6,#1
	  BEQ FWD
	  STR R6,[R5],#4
	  D FWD1
FWD: STR R6,[R5],#4
FWD1: SUBS R1,R1,#01
	  BNE BACK
	 
EXIT: B EXIT

.DATA 
	COUNT: .WORD 0x07
	ARRAY: .WORD 0x15, 0x35, 0x32, 0x45, 0x10, 0x4f, 0x34
	EVEN: 0,0,0,0,0
	ODD: 0,0,0,0,0
    
<!--Obj 3 - Gray code-->

    

Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.