🌸 「なでしこ」
>
🍯 「貯蔵庫」
なんちゃってアセンブラ
🌟新規
📒一覧
🔌
🔍検索
🚪ログイン
なんちゃってアセンブラ 📖
x86のNOP命令のみに対応したアセンブラです。各行の「:」とそれより前はラベル、「;」とそれより後はコメントです。
プログラム:
(→大)
「ソース:」のラベル作成。 改行作成。 ソース欄は空のテキストエリア作成。 それの「rows」に10をDOM属性設定。 それの「cols」に50をDOM属性設定。 それの「width」に「unset」をDOMスタイル設定。 それの「height」に「unset」をDOMスタイル設定。 改行作成。 アセンブルボタンは「アセンブル」のボタン作成。 2回、改行作成。 「結果:」のラベル作成。 改行作成。 結果欄は空のテキストエリア作成。 それの「rows」に5をDOM属性設定。 それの「cols」に50をDOM属性設定。 それの「width」に「unset」をDOMスタイル設定。 それの「height」に「unset」をDOMスタイル設定。 それの「readOnly」にオンをDOM属性設定。 改行作成。 「メッセージ:」のラベル作成。 改行作成。 メッセージ欄は空のテキストエリア作成。 それの「rows」に5をDOM属性設定。 それの「cols」に50をDOM属性設定。 それの「width」に「unset」をDOMスタイル設定。 それの「height」に「unset」をDOMスタイル設定。 それの「readOnly」にオンをDOM属性設定。 アセンブルボタンをクリックした時には ソース欄のテキスト取得。 それの「{CR}{LF}」をLFに置換。 それのCRをLFに置換。 それをLFで区切る。 定数のソース配列はそれ。 定数のアセンブル結果は空配列。 変数のメッセージは空。 行番号で1から(ソース配列の要素数)まで繰り返す 定数のソース行はソース配列@(行番号-1)。 ソース行の「/;.*$/」を空に正規表現置換。 それの「/^.*:/」を空に正規表現置換。 それをトリムして小文字変換。 定数の命令はそれ。 もし、命令が「nop」と等しいならば アセンブル結果に0x90を配列追加。 違えば、もし、命令が空でなければ メッセージはメッセージと「{行番号}行目でエラー:未知の命令{カッコ}{命令}{カッコ閉}があります。{改行}」を連結。 ここまで。 ここまで。 変数のアセンブル結果テキストは空。 添字で1から(アセンブル結果の要素数)まで繰り返す アセンブル結果@(添字-1)を16進数変換して2でゼロ埋め。 アセンブル結果テキストはアセンブル結果テキストとそれを連結。 もし、添字を16で割った余りが0と等しいならば アセンブル結果テキストはアセンブル結果テキストと改行を連結。 違えば アセンブル結果テキストはアセンブル結果テキストと「 」を連結。 ここまで。 ここまで。 アセンブル結果テキストはアセンブル結果テキストをトリム。 もし、アセンブル結果の要素数が0超ならば アセンブル結果テキストはアセンブル結果テキストと改行を連結。 ここまで。 結果欄にアセンブル結果テキストをテキスト設定。 メッセージ欄にメッセージをテキスト設定。 ここまで。
プログラムを実行
⭐ みけCAT 作
(
関連URL
)
タイトル:
なんちゃってアセンブラ
ライセンス:
CC0 (著作権破棄)
タイプ:
wnako
タグ:
-
利用バージョン:
3.7.16
作成日時:
2026/03/15 23:52 (編集: 2026/03/15 23:54)
公開の投稿
ログイン
して★を付けよう!
📝作品を編集
作品公開情報
📍この作品のURL:
📍アプリ(即時実行)のURL:
📍アプリ(実行ボタンあり)のURL:
📍ブログパーツ:
上記HTML↑をブログに貼り付けることでアプリを埋め込めます。
📍ライブラリ直リンク - 『!「***」を取込』で使うとき:
📍なでしこハブ (最新版の反映は1日後):
ソースの確認
編集履歴の確認
通報数:
0
通報って何?