見出し画像

MASM32の使い方 (1.5)

ポインタの型宣言

①での演算プログラムでポインタ(メモリのアドレス)の型指定をdw(WORD(16bit))にするとアセンブリは出来るが異常終了する。

画像1

修正すると正常に動作する。

画像2

レジスタは32bitなので、レジスタに下位だけコピーされているのでオーバーフローしているかもと思いレジスタを初期化した。

画像3

これで正常になるかと思ったが・・・

画像4

異常終了する。ddで定義すれば良いのだが dw(DWORD)なのに dd と書かないといけないのは混乱しそう。

add命令について

add命令は オペランドのうち一つしかポインタ(メモリアドレスをしめすラベル)を使えない。

画像5


この場合、エラーがでてアセンブルできない。

画像6

プロジージャー(関数)の使い方

コードの一部を proc - endp で囲むとプロシージャ(手続き)として関数みたいに使える。プロシージャから戻るには ret が必要。

画像7

LOCAL 変数名(ラベル):型宣言 とするとローカル変数みたいに使える。

画像8

part①の補足はここまで。

いいなと思ったら応援しよう!