Add std/string/array/compare.lb
This commit is contained in:
		
							parent
							
								
									efa1d86be9
								
							
						
					
					
						commit
						ba274c0371
					
				
							
								
								
									
										84
									
								
								std/string/array/compare.lb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								std/string/array/compare.lb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,84 @@
 | 
			
		||||
@ 0 ; Getting all arguments
 | 
			
		||||
 args 0
 | 
			
		||||
 size
 | 
			
		||||
 | 
			
		||||
 args 1
 | 
			
		||||
 dup
 | 
			
		||||
 |#insert push
 | 
			
		||||
 push 1
 | 
			
		||||
 |#insert jmp
 | 
			
		||||
 |args
 | 
			
		||||
 jmp 255
 | 
			
		||||
 | 
			
		||||
@ 1
 | 
			
		||||
 dup
 | 
			
		||||
 #expr +
 | 
			
		||||
 pick ; Finish getting arguments
 | 
			
		||||
 
 | 
			
		||||
 dup ; Duplicate top two elements
 | 
			
		||||
 push 2
 | 
			
		||||
 pick 
 | 
			
		||||
 | 
			
		||||
 sub ; Lengths unequal => strings unequal
 | 
			
		||||
 jnz 2
 | 
			
		||||
 
 | 
			
		||||
 pop
 | 
			
		||||
 push 0
 | 
			
		||||
 | 
			
		||||
@ 4
 | 
			
		||||
 | 
			
		||||
 dup ; Duplicate top two elements
 | 
			
		||||
 push 2
 | 
			
		||||
 pick
 | 
			
		||||
 ; |str_size index...>
 | 
			
		||||
 | 
			
		||||
 sub
 | 
			
		||||
 jz 5
 | 
			
		||||
 | 
			
		||||
 ; |index str_size...>
 | 
			
		||||
 dup ; Get current symbol of s1
 | 
			
		||||
 push 2
 | 
			
		||||
 add
 | 
			
		||||
 pick
 | 
			
		||||
 ; |char index str_size...>
 | 
			
		||||
 | 
			
		||||
 push 2 ; Get string size
 | 
			
		||||
 pick
 | 
			
		||||
 | 
			
		||||
 push 2 ; Get current symbol of s2
 | 
			
		||||
 pick
 | 
			
		||||
 add
 | 
			
		||||
 push 4
 | 
			
		||||
 add
 | 
			
		||||
 pick
 | 
			
		||||
 | 
			
		||||
 sub ; Check symbol equality
 | 
			
		||||
 jnz 2
 | 
			
		||||
 | 
			
		||||
 ; |index...>
 | 
			
		||||
 #expr +
 | 
			
		||||
 | 
			
		||||
 jmp 4
 | 
			
		||||
 | 
			
		||||
@ 2 ; Clear stack (diff)
 | 
			
		||||
 size
 | 
			
		||||
 jz 3
 | 
			
		||||
 pop
 | 
			
		||||
 jmp 2
 | 
			
		||||
 | 
			
		||||
@ 3 ; Exit, string are different
 | 
			
		||||
 push 0
 | 
			
		||||
 quit
 | 
			
		||||
 | 
			
		||||
@ 6 ; Clear stack (equ)
 | 
			
		||||
 size
 | 
			
		||||
 jz 5
 | 
			
		||||
 pop
 | 
			
		||||
 jmp 6
 | 
			
		||||
 | 
			
		||||
@ 5 ; Exit, string are the same
 | 
			
		||||
 push 1
 | 
			
		||||
 quit
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ 255
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user