lr_split
右と左にわけるのです。
numalias lr_split_l numalias lr_split_r numalias lr_split_str numalias lr_split_t numalias lr_split_len ------ ------ ;============================== ; lr_split ;============================== ;機能:与えられた文字列から、左からn文字までと、その残りを返す。 ;引数:左側文字列を格納する文字変数、右側文字列を格納する文字変数、分割したい文字列、左から数えて何文字か ;付記:三番目の引数を0にすると、空白と与えたもの全部が戻ってくる。 *lr_split getparam s%lr_split_l,s%lr_split_r,$lr_split_str,%lr_split_t len %lr_split_len,$lr_split_str mid $%lr_split_l,$lr_split_str,0,%lr_split_t mid $%lr_split_r,$lr_split_str,%lr_split_t,%lr_split_len-%lr_split_t return ;============================== ; rl_split ;============================== ;機能:与えられた文字列から、右からn文字までと、その残りを返す。 ;引数:左側文字列を格納する文字変数、右側文字列を格納する文字変数、分割したい文字列、右から数えて何文字か ;付記:三番目の引数を0にすると、空白と与えたもの全部が戻ってくる。 *rl_split getparam s%lr_split_l,s%lr_split_r,$lr_split_str,%lr_split_t len %lr_split_len,$lr_split_str ;逆転させる。 mid $%lr_split_l,$lr_split_str,0,%lr_split_len-%lr_split_t mid $%lr_split_r,$lr_split_str,%lr_split_len-%lr_split_t,%lr_split_t return
文字列を左右に分割することから、lr_split/rl_splitと名づけた。
mov $0,"ながいながい文字列" $0 lr_split $1,$2,$0,4 $1/$2 rl_split $1,$2,$0,4 $1/$2
こういうサンプルを走らせると、
ながいながい文字列 なが/いながい文字列 ながいながい文/字列
こんな風に表示される。