mirror of
https://gitlab.os-k.eu/os-k-team/kvisc.git
synced 2023-08-25 14:05:46 +02:00
37 lines
1016 B
Plaintext
37 lines
1016 B
Plaintext
# 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 #
|
|
#---------------------------------------------------------------------------#
|
|
|
|
#
|
|
# 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 2
|
|
scasw 2
|
|
scasd 2
|
|
scasq 2
|
|
|
|
#---------------------------------------------------------------------------#
|
|
|