2011年10月1期プログラムアセンブラ初心者スレッド
TOP カテ一覧 スレ一覧 削除依頼 ▼
・ 次のスレ
形態素解析と日本語処理
C言が全く分からない俺を神が救ってくれるスレ
【Lisp】プログラミング言語 Clojure #2【JVM】
スレを勃てるまでもないC/C++の質問はここで 20
アセンブラ初心者スレッド
- 1 :11/08/28 〜 最終レス :11/12/14
- 初心者OK!質問大歓迎!のアセンブラのスレッドです。
基本情報の勉強中の人、PICやH8を勉強中の学生などなど…
- 2 :
- このスレッドは天才pンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
- 3 :
- アセンブラ最高や!
C言語なんか最初からいらんかったんや!
- 4 :
- マシン語最高や!
アセンブラなんて最初からいらんかったんや!
- 5 :
- アセンブラを勉強するのにいい、unix系の本がありますか?
- 6 :
- だいぶ前に落ちたっきり次スレが立たなかったアセンブラスレの
次スレを立てましたので、以後そちらで。
http://hibari.2ch.net/test/read.cgi/tech/1314512680/l50
- 7 :
- >>6
初心者用らしいしここでいいんじゃね
- 8 :
- 初心者用なら質問用テンプレが居るな、特にアセとなると
石、アセンブラが何か分からんと答えられんケースあるし
【CPU】 アセンブラではCPU(通称「石」)によって回答が全く違ってくることも多いので必須です。
まったく分からなくても「Windowsが動くCPUです」など、分かるだけのことを書いてください。
【アセンブラ】 これも分かれば。コマンド名とかでもいいです。
あとは何をテンプレにすべき?
- 9 :
- 書籍なんかがあればいいと思うけど
- 10 :
- 質問します
『独習アセンブラ』という本を買って来て、文字を出力するプログラム(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 :
- dispchar.asm のソースを一応載せておきます
>cat dispchar.asm
; dispchar.asm
mov ah, 02
mov dl, 31h
int 21h
mov ah, 4Ch
mov al, 0
int 21h
- 12 :
- >>10
それに乗ってるのは16bitのコードだから、win7 64bitでは動かないよ
アセンブラも多分16bitだから動かないんじゃないかな?
- 13 :
- >>12
えっ、そうなのですか
残念です
では64bitの環境で学習できるよいサイトはあるでしょうか?
- 14 :
- NASMはWin32版もある
- 15 :
- ピックやれピック
- 16 :
- >>13
32bitアセンブラコードは。。。
ほとんどwin32API呼び出しで、アセンブラの意味はないしねぇ。。。
>>15の言う通り、PICマイコンでアセンブラした方が遊べると思うけど、こっちのアセンブラが64bitOSで動くかも不安が在るな。。。
ためして見た人居る?
- 17 :
- 実ハードで動かすことにこだわらず、エミュ使うのも手だと思うが。
- 18 :
- xpモードで開発&実行
- 19 :
- アセンブラで、C言語のcase文のように書きたいのですけどどう書けばいいですか?
また、イフ文のようにも書きたいんですけどどう書けばいいですか?
- 20 :
- あ、開発環境はMPASM
PIC16F84Aです
- 21 :
- 基本的には無理。
定番としてはテーブルジャンプだけど、その石でできるかどうかは知らない。
- 22 :
- call adressを機械語にすると
E8 77 77 77 77 みたいになるけど
この77777777実際のアドレスと違うんだよね
どういう規則でこのアドレスは算出されてるの?
- 23 :
- call命令っつっても対応するオペコードは複数あるんだよ。
E8の場合はIPからの相対アドレスへのnear call。
- 24 :
- 相対ジャンプの場合は、石によるけど、ジャンプ命令のアドレスからのオフセットか、
その次の命令のアドレスからのオフセット(8086はどっちだっけ)。
- 25 :
- 8086はWindowsのことだよね?
逆算してみたら、次のコードの開始位置からの相対位置ですね
- 26 :
- BSR ラベル:16 で書くのと JSRではどっちのがメモリ食うのか分からないです。
長いならJSRですかね?
- 27 :
- 石の種類によるけど、BSRは3〜4バイト、JSRは4〜6バイト。
BSR ラベル:8 と書ける石もあって、この命令は2バイト。
でも、一般的にBSRのほうがJSRよりもマシンサイクルが多い(=遅い)。
その差まで気にかけるほどシビアな条件にはならないようにハード選定時点で
考えられるはず。 ってもう見てないよな(w
- 28 :11/12/14
- 暇なんでやってみた
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
TOP カテ一覧 スレ一覧 削除依頼 ▲
・ 次のスレ
形態素解析と日本語処理
C言が全く分からない俺を神が救ってくれるスレ
【Lisp】プログラミング言語 Clojure #2【JVM】
スレを勃てるまでもないC/C++の質問はここで 20