バイトオーダー変換コードのソース
Imaha486さんが作ってくれた変換コードのソースを転載させてもらってます。
興味のある方はどうぞ〜
〜CUE-LOGIC用リトルエンディアン←→ビッグエンディアン変換〜
.386
.model flat, stdcall
option casemap :none
.code
start:
;プログラムの構造上、ループ回数をファイルサイズの1/4にする
xor eax,eax ;eax=0 除算用
xor ebx,ebx ;ebx=0 計算結果格納用
_divlp:
add eax,4 ;eaxに4を加算
inc ebx ;ebx++
cmp eax,ecx ;eaxとecxを比較
je _divend ;もしも同じならば次処理へ分岐
jg _divrev ;オーバーしたら補正処理に分岐
jmp _divlp ;ループ
_divrev:dec ebx ;補正処理(余った部分を計算しないように)
_divend:
mov ecx,ebx ;計算結果をecxに格納
_mainlp: ;メインループ
;データスワップその1[0,1,2,3]->[3,1,2,0]
mov al,[esi]
mov bl,[esi+3h]
mov [esi],bl
mov [esi+3h],al
;データスワップその2[3,1,2,0]->[3,2,1,0]
mov al,[esi+1h]
mov bl,[esi+2h]
mov [esi+1h],bl
mov [esi+2h],al
;次の位置に
add esi,4
loop _mainlp ;繰り返し
ret
end start
====================
コードは以下のとおり
#CUE_LOGIC_CODE
#000:33C033DB83C00443:38B
#008:3BC174057F02EBF4:3D5
#010:4B8BCB8A068A5E03:31C
#018:881E8846038A4601:248
#020:8A5E02885E018846:29F
#028:0283C604E2E5C300:3D9
#END_CUE_LOGIC