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