45 lines
		
	
	
		
			No EOL
		
	
	
		
			698 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			No EOL
		
	
	
		
			698 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
| 	AREA RESET, DATA, READONLY
 | |
| 	EXPORT __Vectors
 | |
| __Vectors
 | |
| 	DCD 0x10001000
 | |
| 	DCD Reset_Handler
 | |
| 	ALIGN
 | |
| 
 | |
| 	AREA MYCODE, CODE, READONLY
 | |
| 	ENTRY
 | |
| 	EXPORT Reset_Handler
 | |
| 
 | |
| Reset_Handler
 | |
| 	MOV    R5, #8
 | |
| 	LDR    R0, =SRC
 | |
| 	LDR    R2, =target
 | |
| 	LDR    R7, [R2]
 | |
| 	LDR    R3, =result
 | |
| 	LDR    R8, =found_addr
 | |
| 	MOV    R4, #0
 | |
| 	STR    R4, [R3]
 | |
| 	STR    R4, [R8]
 | |
| loop
 | |
| 	LDR    R1, [R0], #4
 | |
| 	CMP    R1, R7
 | |
| 	BEQ    found
 | |
| 	SUBS   R5, R5, #1
 | |
| 	BNE    loop
 | |
| 	B      STOP
 | |
| found
 | |
| 	MOV    R4, #1
 | |
| 	STR    R4, [R3]
 | |
| 	SUB    R6, R0, #4
 | |
| 	STR    R6, [R8]
 | |
| STOP
 | |
| 	B      STOP
 | |
| 
 | |
| 	AREA CONSTS, DATA, READONLY
 | |
| SRC        DCD 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x1, 0x2
 | |
| target     DCD 0x1
 | |
| 
 | |
| 	AREA DATA1, DATA, READWRITE
 | |
| result     DCD 0
 | |
| found_addr DCD 0
 | |
| 
 | |
| 	END |