swap
Perlだったらなー。swapなんて、
( $b, $a ) = ( $a, $b );
で一撃なのになー。
numalias swap_a numalias swap_b numalias swap_temp numalias swap_first numalias swap_last numalias swap_loop ------ ------ ;============================== ; swap ;============================== ;機能:引数に与えられた変数の内容を交換する。 ;引数:中身を交換したい数値変数 ;付記:文字列変数の場合はswap2を使ってください。 *swap getparam i%swap_a,i%swap_b mov %swap_temp,%%swap_a mov %%swap_a,%%swap_b mov %%swap_b,%swap_temp return ;============================== ; swap2 ;============================== ;機能:引数に与えられた変数の内容を交換する。 ;引数:中身を交換したい文字変数 ;付記:配列変数の場合はswap3を使ってください。 *swap getparam s%swap_a,s%swap_b mov $swap_temp,$%swap_a mov $%swap_a,$%swap_b mov $%swap_b,$swap_temp return ;============================== ; swap3 ;============================== ;機能:引数に与えられた変数の内容を交換する。 ;引数:中身を交換したい配列変数の番号二つと、何番までを交換するのかを一つ ;付記:ちょっと毛色が変わってます。注意してください。また、一次元配列に限ります。 *swap getparam %swap_a,%swap_b,%swap_first,%swap_last for %swap_loop = %swap_first to %swap_last mov %swap_temp,?%swap_a[%swap_loop] mov ?%swap_a[%swap_loop],?%swap_b[%swap_loop] mov ?%swap_b[%swap_loop],%swap_temp next return