アセンブラによるMINI-Cの関数の作成
| アドレス | メモリー内容 |
|---|---|
| FFFAh | アドレスカウンタの下位 |
| FFFBh | アドレスカウンタの上位 |
| FFFCh | A7h−−−(int data) |
| FFFDh | 00h−−−(int data) |
| FFFEh | 1Fh−−−(int port) |
| FFFFh | 00h−−−(int port) |
| アドレス | メモリー内容 |
|---|---|
| FFF8h | 変数“buff_1”の下位 |
| FFF9h | 変数“buff_1”の上位 |
| FFFAh | アドレスカウンタの下位 |
| FFFBh | アドレスカウンタの上位 |
| FFFCh | A7h−−−(int data) |
| FFFDh | 00h−−−(int data) |
| FFFEh | 1Fh−−−(int port) |
| FFFFh | 00h−−−(int port) |
/****************************************/
/* */
/* [ io.h ] */
/* */
/****************************************/
//------------------------------------------------------------------------
// void out( int port, int data )
//
// 機能) I/Oポートへデータを出力します。
//
// 引数) int port 出力先I/Oポートアドレス
// int data 出力データ(下位バイト)
//
//------------------------------------------------------------------------
void out( int port, int data )
{
#asm
ld hl, 4
add hl, sp
ld c, (hl)
ld hl, 2
add hl, sp
ld a, (hl)
out (c), a
#endasm
}
//------------------------------------------------------------------------
// int in( int port )
//
// 機能) I/Oポートからデータを取得します。
//
// 引数) int port 入力先I/Oポートアドレス
//
// 戻値) 戻り値は、int型で返します。入力したデータは
// 下位バイトへ格納されます
//
//------------------------------------------------------------------------
int in( int port )
{
#asm
ld hl, 2
add hl, sp
ld c, (hl)
in a, (c)
ld l, a
ld h, 0
#endasm
}