現在、GNUSim8085というシミュレーターでアセンブラのシミュレーションデバッグを行っています。それで、”初期化プログラム”というのを貼り付けてみたのですが、
LXI SP,STACK
という行でエラーが出てきます。
エラー内容は、
21 Undefined symbol
21 Invalid operand or symbol.Check whether operands start with a number.
e.g a0H should be 0a0H
;<Program title>
jmp start
;data
;code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ;
; 初 期 化 プ ロ グ ラ ム ;
; ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start: nop
di
LXI SP,STACK
;
lxi h,?ramsta
mvi b,0
mvi a,0
;call fill
hlt
No.1ベストアンサー
- 回答日時:
単純に、(どこかで定義されているべき)STACK という名前が「存在しない」と言っているのです。
(多分、SP はアセンブラで定義されているのでしょう)
STACK の開始位置を設定する定義がどこかで必要です。
?ramsta も同じように「未定義」になりそうですが、? で始まっているので、「外部定義」ということなのかもしれません(憶測)
fill はコメントアウトしてあるために、未定義になっていないと言うことですね。
回答頂きありがとうございます。
この”STACK”というのをアセンブラコードで検索してみたところ
Symbols:
F233" ?BUSFLG_BFF216" ?BUS_OCTLF066" ?C55PAF211" ?C55PBF212" ?C55PB_B
F213" ?C55PB_CF067" ?C55PCF21D" ?CF_CNTF21A" ?CTKHCF217" ?EXT_OCTL
----------(中略)------------------
FF00" STACK27CA' STACOD3CE2' STADAT1B40' STAF021074I'START
このような書き方がされていました。
これはSTACKというのが0FF00hの開始位置に定義されているということになりますでしょうか?
STACK: EQU 0ff00h
このように書いてもエラーは回避できてはいます。
また、”?ramsta”も同様にSymbols:のところで
F20F" ?PO_LEDF210" ?PO_TESF20B" ?PRTPTF23C" ?RAMENDF200" ?RAMSTA
というように書かれていました。
No.2
- 回答日時:
スタックポインタをどこに設定するかというのは、実行環境に依存する問題で、インテル純正の開発環境では、ロケーターというものがそれを解決していたのですが、最近の処理系では、リンカがその仕事をしていることでしょう。
当該シミュレーターがどのようになっているのか、少しいじってみましたが、よくわかりませんでした。
さしあたって、ソースに
STACK: EQU 07fffh
などと書いて、やり過ごすのが良いのではないでしょうか?
しかし、実際にはRAM領域の指定もしなければならないでしょう。(?ramsataの部分ですかね)
試しにちょっと動かしてみたら、コードが04200hに出来てました。これの設定部分があれば、シンボルの解決方法がわかるかもしれません。
でもちょっと見た感じ、昔良くあったアセンブラトレーニングツール程度のモノののような気がします。あまり高度なことは出来ないのではないかと。わざわざ80ではなくて85のツールという割には、IO空間が64Kあるのはいいとして、rst6.5,7.5(どこからどこまであるのかもう忘れたけど)や、1bitの入出力も無いですし。
回答頂きありがとうございます。返事が遅くなり申し訳ありません。
STACK: EQU 07fffh
このようなやり方があるのですね。活用させて頂きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アセンブラからC言語に変換する...
-
ライン数とステップ数の違いは?
-
【H8マイコン】HEWで埋め込みア...
-
実行ファイルからソースはみれる?
-
アセンブラ言語がわかりません。
-
解析魔法少女を読んだ方に質問
-
システムコールに関して
-
PICはアセンブラとC言語のどち...
-
エクセルVBAのIf,Then 構...
-
8ビットのデータの、先頭ビット...
-
0xffffとは?
-
A4 持ち込み
-
整数除算の意味とは?
-
基本情報のCASLIIの平成18...
-
バリアブルーレジスターって何...
-
sambaのパーミッション設定につ...
-
アセンブラと高水準言語の関係...
-
数独の3国同盟のアルゴリズム...
-
SRAMとレジスタの違いは何でし...
-
Windowsはいったい何言語で書か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アセンブラからC言語に変換する...
-
ライン数とステップ数の違いは?
-
実行ファイルからソースはみれる?
-
PC-9801でマシン語を学習するに...
-
[C言語→アセンブリ言語]はどう...
-
void __cdeclなど_
-
アセンブラwordという単位
-
アセンブラ言語がわかりません。
-
バイナリの実行ファイルをgccを...
-
SHの命令の意味について
-
PC-9801 MS-DOSでの実行ファイ...
-
アセンブラエディタ
-
PICに書き込むプログラムや変数...
-
PICのアセンブラからC言語へ変...
-
アセンブラのLA
-
【H8マイコン】HEWで埋め込みア...
-
ニーモニックコードを使って割...
-
7セグメントLEDの点灯について
-
アセンブラのコマンドについて
-
MASMの機種依存についてお尋ね...
おすすめ情報