atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
cocoaの隠れ処
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
cocoaの隠れ処
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
cocoaの隠れ処
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • cocoaの隠れ処
  • xkas

cocoaの隠れ処

xkas

最終更新:2012年03月02日 18:34

cocoadayo

- view
だれでも歓迎! 編集

目次

  • 目次
  • xkas
    • これは?
    • 入手
    • 使い方
  • xkas文法
    • ヘッダ情報
    • 定義
    • ラベル
    • マクロ
    • バイト長を明示
    • 演算
    • 繰り返し
    • バイナリ書き込み
    • 名前空間
    • 書き込み位置

xkas

これは?

アセンブリをアセンブルしてROMに挿入してくれるソフトです。書き込む位置によっては元のROMを上書きしてしまう恐れがあるため、ROM Mapを確認する必要があります。

bliteやSprite Toolsには初めから入っていますのでそれを利用しても構いません。寧ろそちらの方が安全でしょう;

入手

SMW CentralのToolsより入手可能です。

使い方

xkas [.asmのパス] [ROMのパス]

でROMに書き込み、

xkas [.asmのパス] [作成する.binのパス]

で.binファイルを生成します。.binを作成するならTRASMを利用した方がよいでしょう。

xkas文法

基本的には65C816アセンブリ言語を元にしていますが、色々と追加されたものがあるのでその部分について纏めます。

ヘッダ情報

hirom
lorom

でROMのデータの区切り方法を示します。hiromでは10000hごと、loromでは8000hごと区切られています。(*1) SMWの場合はloromを指定します。

header

ROMの最初にヘッダが含まれていることを示します。SMWでは必要です。

従っていつも先頭に

header
lorom

は書くことになっています。

定義

![変数名] = [定義するもの]
![変数名] equ [定義するもの]

アセンブリ中にたくさん同じ数値を利用する場合や、何か数値自体に意味のあるものに名前を付けることによって変更が簡単になったりします。

!vx = #$20

などと利用します。

!x = $20として#!xとするとこれは#$20を指します。

!x = $12
!y = $34

とすると!x!yは$1234です。

ラベル

[ラベル名]:

でその地点のアドレスを[ラベル名]で参照することが出来ます。

LOOP:
処理
BEQ LOOP
ループ終了

のように分岐やジャンプなどで使用されます。

このラベルは1つのアセンブリで重複してはいけないため、重複する言許されるサブラベルも用いられます。

.[サブラベル名]

先頭にドットを付けるだけです。参照する場合は「.[サブラベル名]」とドットを付ける必要があります。

LABEL1:
  .SUBLABEL1
     処理
  .SUBLABEL2
     処理
LABEL2:
  .SUBLABEL1
     処理
  .SUBLABEL2
     処理

同じおおラベルの中ではサブラベルは重複してはいけませんが、他のおおラベル間では重複しても問題ありません。

  • ラベル名で「a」と「A」だけは使えないようです。また先頭が数字ではいけません。
  • 大文字小文字、数字、_は使えます。

マクロ

macro [マクロ名]([引数1], [引数2], ...)
命令1
命令2$<引数1>
命令3 #<引数2>
...
endmacro

でマクロを定義すれば

%[マクロ名]([引数1], [引数2], ...)

で呼び出すことが出来ます。

マクロの定義中には引数を指定することが出来、直接置換されます。例を挙げておきます :

macro Coin(x)
    LDA #<x>
    STA $0DBF
endmacro

%Coin($15)

では

LDA #$15
STA $0DBF

が実行されるのと同じ事です。マクロを利用すれば同じような処理をたくさん書かなくて済んで楽になります。勿論、書き込まれるデータ量が減るわけではないので注意が必要です。

バイト長を明示

命令.b #0
命令.w #0

はそれぞれ

命令 #$00
命令 #$0000

と解釈されます。

演算

演算式を書くとその通りに実行されます。

+
加法 $02 + $03
-
減法 $02 - $03
*
乗法 $02 * $03
/
除法 $06 / $03
>>
右シフト $07 >> 1
<<
左シフト $03 << 1
&
論理積 $05 & $03
&brvbar
論理和 $05 | $03
^
排他的論理和 $05 ^ $03
否定 ~$00

左から順番に演算されます。また、ラベルも使用可能です。

JMP LOOP + $01

繰り返し

rep [回数] : [命令]

とすると[命令]を[回数]分だけ繰り返し書いたことと同等になります。当然、回数分だけ容量を食いますので注意が必要です。

バイナリ書き込み

db [値1], [値2], ...
dw [値1], [値2], ... 
dl [値1], [値2], ...
dd [値1], [値2], ...

ROMに直接データを書き込みます。dbは1byte, dwは2byte, dlは3byte, ddは4バイトデータを書き込みます。

db $01, $02, $03

名前空間

namespace "[名前]"

とするとこれ以降のラベルの名前にこの名前が付け加えられます。つまりnamespaceの前後では名前が重複しなくなります。

書き込み位置

org [書き込むアドレス]

書き込みたいアドレスを指定してその位置から書き込みます。

「xkas」をウィキ内検索
LINE
シェア
Tweet
cocoaの隠れ処
記事メニュー

更新ページ

取得中です。

人気ページ

TOTAL : -
  • カウンターの値があるページは1つもありません。
記事メニュー2
人気記事ランキング
  1. 65C816
もっと見る
最近更新されたページ
  • 4852日前

    応用65C816
  • 4852日前

    トップページ
  • 4852日前

    メニュー
  • 4852日前

    Lunar Magic
  • 4852日前

    カスタムブロック
  • 4852日前

    xkas
  • 4852日前

    65C816
  • 4852日前

    応用65C816/カスタムブロック
  • 4852日前

    応用65C816/SMW全般
  • 4852日前

    メモリ資料
もっと見る
人気記事ランキング
  1. 65C816
もっと見る
最近更新されたページ
  • 4852日前

    応用65C816
  • 4852日前

    トップページ
  • 4852日前

    メニュー
  • 4852日前

    Lunar Magic
  • 4852日前

    カスタムブロック
  • 4852日前

    xkas
  • 4852日前

    65C816
  • 4852日前

    応用65C816/カスタムブロック
  • 4852日前

    応用65C816/SMW全般
  • 4852日前

    メモリ資料
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. GTA5 MADTOWN(β)まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. SYNDUALITY Echo of Ada 攻略 ウィキ
  6. ガンダムGQuuuuuuX 乃木坂46部@wiki
  7. ドタバタ王子くん攻略サイト
  8. 星飼いの詩@ ウィキ
  9. パズル&コンクエスト(Puzzles&Conquest)攻略Wiki
  10. ありふれた職業で世界最強 リベリオンソウル @ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. 発車メロディーwiki
  7. MadTown GTA (Beta) まとめウィキ
  8. 検索してはいけない言葉 @ ウィキ
  9. オレカバトル アプリ版 @ ウィキ
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. anbrella(餡ブレラ) - ストグラ まとめ @ウィキ
  2. 参加者一覧 - ストグラ まとめ @ウィキ
  3. 敵情報_第2章 - モンスター烈伝オレカバトル2@wiki
  4. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
  5. Lycoris - MadTown GTA (Beta) まとめウィキ
  6. 山田 ジェイミー - ストグラ まとめ @ウィキ
  7. アルフォート ウェスカー - ストグラ まとめ @ウィキ
  8. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  9. コメント/雑談・質問 - マージマンション@wiki
  10. ぶんぶんギャング - MadTown GTA (Beta) まとめウィキ
もっと見る
注釈

*1 1hは10000です。

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.