# The OS/K Team licenses this file to you under the MIT license. # See the LICENSE file in the project root for more information. #---------------------------------------------------------------------------# # String manipulation instructions # #---------------------------------------------------------------------------# # # Store value into string (STOSx) # # [%1] = $2 # IF (DF == 0) THEN # %str = %str + sizeof(x) # ELSE # %str = %str - sizeof(x) # FI # stosb r ri stosw r ri stosd r ri stosq r ri # # Scan string for a particular value (SCASx) # # CMP([%1], $2) # # IF ([%1] == 0) THEN # ZF = 1 # ELIF (ZF == 0) THEN # IF (DF == 0) THEN # %1 = %1 + sizeof(x) # ELSE # %1 = %1 - sizeof(x) # FI # FI # # Sets CF, OF and SF according to the result of the comparison # Sets ZF according to whether [%1] and $2 are equal, OR if [%1] is null # # Notes: # - Does not move past the value when found # - 'SCASB.REP.NZ reg ch' is a short 'strchnul()' # scasb r ri scasw r ri scasd r ri scasq r ri #---------------------------------------------------------------------------#