planetary days,

不惑とか嘘だよ。惑う惑う。ふらふらと。

Z80ASに関するレポート

2009年12月27日 | ..._〆(゜▽゜ )
紅茶羊羹氏にエラー状況をご報告しとかないと、ということで、GAME-MZのアセンブルエラー状況をまとめてみました。

・game-mz700.asmを、そのままWindows7上でアセンブルした場合
Error game-mz700.asm 69: Out of range on relative jump
が出てアセンブルならず。
# 利用したz80asのバージョンは0.03になります。

・上記の箇所をDB定義で強制回避してアセンブルした結果を、hojaでディスアセンブルして比較してみた所、5823H番地で謎の01H挿入が発生。

WinXP上での生成結果:
	CALL	Z0005		;581D	CD 0F 5D 	..]
	LD	A,(05F4CH)	;5820	3A 4C 5F 	:L_
	SUB	L		;5823	95 		.
	LD	C,A		;5824	4F 		O
	LD	A,(05F4DH)	;5825	3A 4D 5F 	:M_
	SBC	A,H		;5828	9C 		.
	LD	B,A		;5829	47 		G
	INC	BC		;582A	03 		.
	LDIR			;582B	ED B0 		..

Windows7上での生成結果(Vistaも同様):
	CALL	05D41H		;581D	CD 41 5D 	.A]
	LD	A,(05F4CH)	;5820	3A 4C 5F 	:L_
	LD	BC,04F95H	;5823	01 95 4F 	..O
	LD	A,(05F4DH)	;5826	3A 4D 5F 	:M_
	LD	BC,0479CH	;5829	01 9C 47 	..G
	INC	BC		;582C	03 		.
	LDIR			;582D	ED B0 		..

ラベル生成の状況も違うので、hojaの動作も少し怪しいところがあるのだけれど、ダンプを見ると確かに01Hが何故か挟まっていました。

内部のラベルテーブル生成というより、SUB命令が嫌われているっぽいのだけれど・・・
Windows Vistaになったからと言って変わる部分に思えないのに、XPとVista/Win7で吐き出すコードが変わるのは不思議でならない。
アセンブラソースは、こちらに同梱して置いてますので、ご確認いただけると幸いです。
コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

12月26日(土)のつぶやき

2009年12月27日 | (ノ゜∀゜)ノ
20:05 from web
口語表現だと論文として有り難味が無い、というのがアカデミズムのコンセンサスだとするならば、やはりそれは歪んでいるように思う。勿論、口語だろうが何だろうが、表現が曖昧ならば論文としてそもそも落第ではあるが。
20:06 from web
ぶっちゃけ方式説明の文章考えるのが面倒臭いだけなんだがね。
22:59 from web
Tetrisグッズ:人造ルビーイヤリング(Z型)$149って、買う奴いるのか?
by peki_tk on Twitter
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする