as-z80 での関数記述

「as-z80 での関数記述」の編集履歴(バックアップ)一覧はこちら

as-z80 での関数記述 - (2009/02/15 (日) 15:46:30) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

WRTVRM のラップ例 呼び出し先のラベルは C のヘッダに書いた名前に _ を付けたものにする 引数はスタックに積まれる この関数では SP+0 リターンアドレス(L) SP+1 リターンアドレス(H) SP+3 nAddress(L) SP+4 nAddress(H) SP+5 nParam という順で格納されてコールされる この例では返値がないが、8 ビット返値は A レジスタに 16 ビット返値は HL レジスタに入れてリターンする ;------------------------------------------------------------------------------ ; WRTVRM. ; extern void msxBiosWriteVRAM( u16 nAddress, u8 nParam ); ;------------------------------------------------------------------------------ _msxBiosWriteVRAM: ld hl,#2 ;skip return addr. add hl,sp ld e,(hl) inc hl ld d,(hl) inc hl ld a,(hl) ex de,hl jp WRTVRM
WRTVRM のラップ例 呼び出し先のラベルは C のヘッダに書いた名前に _ を付けたものにする 引数はスタックに積まれる この関数では SP+0 リターンアドレス(L) SP+1 リターンアドレス(H) SP+3 nAddress(L) SP+4 nAddress(H) SP+5 nParam という順で格納されてコールされる この例では返値がないが、8 ビット返値は A レジスタに 16 ビット返値は HL レジスタに入れてリターンする ;------------------------------------------------------------------------------ ; WRTVRM. ; extern void msxBiosWriteVRAM( u16 nAddress, u8 nParam ); ;------------------------------------------------------------------------------ _msxBiosWriteVRAM: ld hl,#2 ;skip return addr. add hl,sp ld e,(hl) inc hl ld d,(hl) inc hl ld a,(hl) ex de,hl jp WRTVRM この例では WRTVRM 内の ret で呼び出し元にリターンするという書き方

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。