アセンブラ初心者スレッドat TECH
アセンブラ初心者スレッド - 暇つぶし2ch1:デフォルトの名無しさん
11/08/28 12:36:52.66
初心者OK!質問大歓迎!のアセンブラのスレッドです。
基本情報の勉強中の人、PICやH8を勉強中の学生などなど…



2:デフォルトの名無しさん
11/08/28 13:59:51.60
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所


3:デフォルトの名無しさん
11/08/28 14:07:20.38
アセンブラ最高や!
C言語なんか最初からいらんかったんや!

4:デフォルトの名無しさん
11/08/28 14:18:11.54
マシン語最高や!
アセンブラなんて最初からいらんかったんや!

5:デフォルトの名無しさん
11/08/28 14:20:20.98
アセンブラを勉強するのにいい、unix系の本がありますか?


6:デフォルトの名無しさん
11/08/28 15:25:38.65
だいぶ前に落ちたっきり次スレが立たなかったアセンブラスレの
次スレを立てましたので、以後そちらで。
スレリンク(tech板)l50

7:デフォルトの名無しさん
11/08/28 19:26:11.59
>>6
初心者用らしいしここでいいんじゃね

8:デフォルトの名無しさん
11/08/28 19:53:10.57
初心者用なら質問用テンプレが居るな、特にアセとなると
石、アセンブラが何か分からんと答えられんケースあるし

【CPU】 アセンブラではCPU(通称「石」)によって回答が全く違ってくることも多いので必須です。
     まったく分からなくても「Windowsが動くCPUです」など、分かるだけのことを書いてください。
【アセンブラ】 これも分かれば。コマンド名とかでもいいです。

あとは何をテンプレにすべき?

9:デフォルトの名無しさん
11/08/28 21:36:27.48
書籍なんかがあればいいと思うけど

10:デフォルトの名無しさん
11/08/31 12:03:39.49
質問します
『独習アセンブラ』という本を買って来て、文字を出力するプログラム(p.5)をつくってみたのですが、うまく動きません
nasm -f bin dispchar.asm -o dispchar.com
こう入力してから dispchar.com を動作させると、つぎのように表示されました

このバージョンの \dispchar.com は、実行中の Windows のバージョンと互換性がありません。コンピューターのシステム情報を確認して、
プログラムの x86 (32 ビット) のバージョンと x64 (64 ビット) のバージョンのどちらが必要か確認してから、ソフトウェアの発行元に問い合わせてください。

windows 7 64 bit でとりあえず動作させたいのですが、どうすればよいのでしょうか?

【CPU】 intel core i5-2400
【アセンブラ】 NASM version 2.09.10 compiled on Jul 15 2011

11:10
11/08/31 12:05:03.29
dispchar.asm のソースを一応載せておきます

>cat dispchar.asm
; dispchar.asm
mov ah, 02
mov dl, 31h
int 21h

mov ah, 4Ch
mov al, 0
int 21h

12:デフォルトの名無しさん
11/08/31 13:17:22.23
>>10
それに乗ってるのは16bitのコードだから、win7 64bitでは動かないよ
アセンブラも多分16bitだから動かないんじゃないかな?


13:デフォルトの名無しさん
11/08/31 22:09:56.92
>>12
えっ、そうなのですか
残念です
では64bitの環境で学習できるよいサイトはあるでしょうか?

14:デフォルトの名無しさん
11/08/31 22:13:55.85
NASMはWin32版もある

15:デフォルトの名無しさん
11/09/01 02:22:30.05
ピックやれピック

16:デフォルトの名無しさん
11/09/01 21:14:57.42
>>13
32bitアセンブラコードは。。。
ほとんどwin32API呼び出しで、アセンブラの意味はないしねぇ。。。

>>15の言う通り、PICマイコンでアセンブラした方が遊べると思うけど、こっちのアセンブラが64bitOSで動くかも不安が在るな。。。

ためして見た人居る?


17:デフォルトの名無しさん
11/09/01 21:22:48.86
実ハードで動かすことにこだわらず、エミュ使うのも手だと思うが。

18:デフォルトの名無しさん
11/09/01 21:28:50.15
xpモードで開発&実行


19:デフォルトの名無しさん
11/09/01 21:57:17.07
アセンブラで、C言語のcase文のように書きたいのですけどどう書けばいいですか?
また、イフ文のようにも書きたいんですけどどう書けばいいですか?



20:デフォルトの名無しさん
11/09/01 21:58:06.62
あ、開発環境はMPASM
PIC16F84Aです

21:デフォルトの名無しさん
11/09/01 23:27:06.89
基本的には無理。

定番としてはテーブルジャンプだけど、その石でできるかどうかは知らない。

22:デフォルトの名無しさん
11/10/02 00:57:45.07
call adressを機械語にすると
E8 77 77 77 77 みたいになるけど
この77777777実際のアドレスと違うんだよね
どういう規則でこのアドレスは算出されてるの?


23:デフォルトの名無しさん
11/10/02 03:08:10.28
call命令っつっても対応するオペコードは複数あるんだよ。
E8の場合はIPからの相対アドレスへのnear call。

24:デフォルトの名無しさん
11/10/02 05:49:48.47
相対ジャンプの場合は、石によるけど、ジャンプ命令のアドレスからのオフセットか、
その次の命令のアドレスからのオフセット(8086はどっちだっけ)。

25:22
11/10/02 05:56:17.04
8086はWindowsのことだよね?
逆算してみたら、次のコードの開始位置からの相対位置ですね


26:デフォルトの名無しさん
11/10/16 15:03:31.57
BSR ラベル:16 で書くのと JSRではどっちのがメモリ食うのか分からないです。
長いならJSRですかね?

27:デフォルトの名無しさん
11/12/14 04:55:52.34
石の種類によるけど、BSRは3~4バイト、JSRは4~6バイト。
BSR ラベル:8 と書ける石もあって、この命令は2バイト。
でも、一般的にBSRのほうがJSRよりもマシンサイクルが多い(=遅い)。
その差まで気にかけるほどシビアな条件にはならないようにハード選定時点で
考えられるはず。 ってもう見てないよな(w

28:デフォルトの名無しさん
11/12/14 18:44:46.56
暇なんでやってみた
win32だとCでやるのと変わらんわ・・・

;ml hello.asm /link /subsystem:console
.386
.model flat, stdcall
GetStdHandle proto :DWORD
WriteConsoleA proto :DWORD,:DWORD,:DWORD,:PTR,:DWORD
ExitProcess proto :DWORD
includelib kernel32.lib
.data
STD_OUTPUT_HANDLE EQU -11
hello DB 'hello, world',0Dh,0Ah,0
.data?
OUTLEN DWORD ?
.code
mainCRTStartup proc
local STDOUT :DWORD
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov STDOUT,eax
invoke WriteConsoleA,STDOUT,offset hello,14,offset OUTLEN,0
invoke ExitProcess,OUTLEN
ret
mainCRTStartup endp
end


29:デフォルトの名無しさん
12/03/21 15:57:39.75
64bitOS上の32bitアプリで関数コールにpushad popadだけ書いてretしたらエラー落ちするのは何が問題なんでしょう?

30:営利利用に関するLR審議中@詳細は自治スレへ
12/03/31 17:38:06.65
>>29
    .386
    .model flat
    .code
_start:
    call  testsub
    ret
testsub:
    pushad
    popad
    ret
    end  _start

ml test.asm /link /subsystem:console

Vista 64bit で動かしたけど、なんも問題ないっぽいけど。

31:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 01:39:15.92
たのしそうだなー

32:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 21:06:07.23
>>30
それ64bitOS上の64bitコードじゃね?

33:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 21:31:03.44
バカ発見

34:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 16:38:17.56
キチガイ発見

35:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 00:23:22.00
アフォは自己紹介をする。

36:営利利用に関するLR審議中@詳細は自治スレへ
12/04/09 01:41:07.82
>>35
早く自己紹介して

37:デフォルトの名無しさん
12/04/21 13:51:03.49
アセンブリをCのソースに変換するフリーのデコンパイラって存在しますか?

38:デフォルトの名無しさん
12/04/21 13:58:08.54
存在しますよ。

39:デフォルトの名無しさん
12/04/21 14:00:48.85
検索キーワードを教えちくり

40:デフォルトの名無しさん
12/04/21 14:17:23.30
英語で検索すればおk

41:デフォルトの名無しさん
12/04/21 14:18:27.72
なるほど
ありがとう!やってみる

42:デフォルトの名無しさん
12/05/02 19:06:18.83
フローチャート書いてるんですが
スタック操作命令のPOP,PUSHってどうやって書けばいいですか?
PUSHの場合これ出会ってますか?
SP←0+(GR1)

43:デフォルトの名無しさん
12/05/02 19:27:42.00
フローチャートはコーディングじゃないから、箱(処理)の中に「GR1をスタックに保存」「GR1をスタックから復帰」とか、自分で分かりやすい風に書きゃいーよ。

44:42
12/05/02 19:34:10.73
>>43
そうなんですか。
ありがとうございます

45:デフォルトの名無しさん
12/05/03 00:55:55.00
68kの性能のいいディスアセンブラないですか?
例えばデータの直後に命令があったらそれを識別できるくらいのがありがたいのですが


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch