すいません、VB4しかやってないんです、VBAはやったけど(ぼそ) チラシの裏だって立派な書き込み空間なんだからねっ!資源の有効活用なんだからねっ!とか偉そうに言ってるけど、実は色々と書き残したいだけ

だからなに? どうしろと? くるみサイズの脳みそしかないあやしいジャンガリアンベムスターがさすらう贖罪蹂躙(ゴシックペナルティ)

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  632  : 記事  35  : コメント  11686  : トラックバック  143

ニュース


片桐 継 は
こんなやつ

かたぎり つぐ ってよむの

大阪生まれ河内育ちなんだけど
関東に住みついちゃったの
和装着付師だったりするの
エセモノカキやってたりするの
VBが得意だったりするの
SQL文が大好きだったりするの
囲碁修行中だったりするの
ボトゲ好きだったりするの
F#かわいいよF#

正体は会った人だけ知ってるの

空気読まなくてごめんなさいなの


わんくまリンク

C#, VB.NET 掲示板
C# VB.NET掲示板

わんくま同盟
わんくま同盟Blog


WindowsでGo言語
WindowsでGo言語


ネット活動


SNSは疲れました

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

イベント活動

プログラムの活動

2010年7月28日 #

Native ニーモニックなプロジェクトは…
http://blogs.wankuma.com/tocchann/archive/2010/07/28/191731.aspx

MASMを動かしてみた~VisualStudioで
http://blogs.wankuma.com/esten/archive/2010/07/28/191730.aspx

のエントリの補足~

VisualStudio2008(Professional以上 もしくはExpressでSP1導入済み)の場合、

作成したC++(C)のプロジェクトのところで右クリックすると、メニューが出てくるの。

image

ここの「カスタム ビルド規則」ってのを選択すると、

 image

がでてくるから、これの*.asmを選択すればOK。

まっさらのプロジェクトにasmファイルを新規追加した時にも「カスタムビルド規則の変更」確認ダイアログがでるので素直に「OK」すれば大丈夫みたい。

posted @ 18:08 | Feedback (1)

いろいろと試行錯誤orz くるしんだよ、べいべぇ。

なにしろ、VisualStudioのファイルテンプレにASMがいない

ので、作っちゃいけないのかなーと頭を抱えてたんだよねぇ。

でも、「拡張子asmでファイルをプロジェクトにいれて作って良い」ということに気付いたら、後は何とかなったw

というわけで、新規コンソールアプリ作って、ソースファイルフォルダに、hoge.asmを作成。

作ると「構成追加変更するよ」みたいなダイアログが出るので、そのままOKして適用してしまう。

; Filename: MasmHoge.ASM
.386
.MODEL flat, C
.CODE

MasmHoge PROC uses esi, arraychar:PTR

   mov esi, arraychar ; Load ESI with the address of the char array.

   mov BYTE PTR [esi], "H"      ; Since a char is 1 byte long, each
   mov BYTE PTR [esi+1], "e"    ; successive element can be accessed
   mov BYTE PTR [esi+2], "l"    ; by adding 1 more to esi.
   mov BYTE PTR [esi+3], "l"    ; by adding 1 more to esi.
   mov BYTE PTR [esi+4], "o"    ; by adding 1 more to esi.
   mov BYTE PTR [esi+5], " "    ; by adding 1 more to esi.
   mov BYTE PTR [esi+6], "W"    ; by adding 1 more to esi.
   mov BYTE PTR [esi+7], "o"    ; by adding 1 more to esi.
   mov BYTE PTR [esi+8], "r"    ; by adding 1 more to esi.
   mov BYTE PTR [esi+9], "d"    ; by adding 1 more to esi.
   mov BYTE PTR [esi+10], "!"    ; by adding 1 more to esi.

   ret

MasmHoge ENDP
END

これは、MasmHoge(char *)でそのアドレスに「Hello Word!」(Worldじゃない)を描く単純な処理w

でもって、呼び出し側

#include "stdafx.h"
/* Filename: CMAIN.C */ 

#include <stdio.h>

#ifdef __cplusplus
extern "C" {
#endif

void MasmHoge (char *);

#ifdef __cplusplus
}
#endif

char chararray[11] = "abc";

int _tmain(int argc, _TCHAR* argv[])
{
   printf ("%s\n", chararray);
   MasmHoge (chararray);
   printf ("%s\n", chararray);
}

変数配列chararrayが、「abc」から「Hello Word!」になれば成功

image

できたー♪

ひどりん、コメント&ヒントさんきうです。

posted @ 17:49 | Feedback (6)

まだ文字列操作の勉強はこれから。まずは四則計算ってことで足し算をしてみた。

環境はお気楽に、VisualStudio2008 を使ってみることにする。

VisualStudio2008で、C++の新規プロジェクトを作成して、新規ソースを追加

#include "stdafx.h"
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
	
	int dwValue;
	dwValue = 5;

	__asm
   {
      mov eax, dwValue
      add eax, 100
      mov dwValue, eax
   }

	// 結果出力
	std::cout << dwValue;

	// DOSプロンプトが消えないように入力待ちにする
	std::cin >>  dwValue;
	return 0;
}

__asm{}の中がMASMのコード。

単純に、dwValueさんに100を足してるだけだから、5+100 で105が出てくるはず。

でもって、実行結果 ↓

image

さてと、足がかり確認。

色々と勉強開始しよう、胡桃の脳なりにorz

posted @ 14:47 | Feedback (4)