トップページ⇒tech
987コメント297KB

アセンブラヽ(`Д´)ノモルァ

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさんNGNG
全スレ
アセンブラ… (・∀・)イイ!
http://pc.2ch.net/test/read.cgi/tech/1002267809/
0002えへへNGNG
2げとずざ
よくやった
ほめてつかわす
0003デフォルトの名無しさんNGNG
おつー?
0004デフォルトの名無しさんNGNG
ちくしょー!!1000取られた
0005デフォルトの名無しさんNGNG
くっ・・・このチキンがぁ・・・。
0006えへへNGNG
結局
前スレに次スレのリンク貼るの忘れたな>1
まあしょうがないか
0007えへへNGNG
しかも
全スレって、アホか。
00081000NGNG
数合わせようと思って996で自分であげてしまった!
計算間違いだった・・・。最後に

     v       w
    (゚ω゚)/ \(゚δ゚)<ジーンギスカーン!
   /(  )    (  )ゝ
     <'\    / >

やりたかったのに。

00091NGNG
Σ(゚Д゚)ソウダッタ
騙された・・・むしろ犯された・・・2ニ
0010デフォルトの名無しさんNGNG
乙かれ>1
0011デフォルトの名無しさんNGNG
       v
     <(゚ω゚) <うっ!
      (  )\        
      /'>

       v
      (゚ω゚)> <はっ!
     /(  )        
       <'\

       v
     <(゚ω゚)> <うっ!
      (  )        
      /'>

       v
      (゚ω゚)/ <はっ!
     /(  )        
       <'\

     v       w
    (゚ω゚)/ \(゚δ゚)<ジーンギスカーン!
   /(  )    (  )ゝ
     <'\    / >

0012デフォルトの名無しさんNGNG
     v       w
    (゚ω゚)/ \(゚δ゚)<心スレワッショイ!
   /(  )    (  )ゝ
     <'\    / >
0013警告NGNG
前スレからながめていうのもなんだが
かなりのアホが混じってる
情報理論くらい習ってからものを書けと言いたくなる連中が多い。
間違いだらけだぞ。初学者は注意したほうがいい。
0014デフォルトの名無しさんNGNG
初学者がいきなりアセンブラやらされる場面は減ったと思うがなー
0015デフォルトの名無しさんNGNG
>>13
せめて1つぐらい、どのレスが間違ってるのか指摘してくれよ。

> 注意したほうがいい。

これだけじゃ何が正しくて何が誤りなのかわかんねーじゃん。
そんな無意味な警告イラネーヨ。
0016デフォルトの名無しさんNGNG
アセンブラを知っているとCのポインタの概念はさっと理解できる。
そういう意味からも知っておいて損はないと思う。

ただ、特殊な分野を除いてアセンブラでプログラムを組みたくない。
能率が悪すぎる。
001713NGNG
>>15
わざとだよ。長々と有用な警告して私の何の得になる?
具体的に挙げると昔から煽りあいになるだけだから、自分で推して知れ。
ただ間違いがあることさえ気づかないのは問題だからな。それだけだ。
001813NGNG
17は騙りです。

すみません。むしゃくしゃしていたのでああ言いたかっただけです。
今後気をつけます。
0019デフォルトの名無しさんNGNG
>>17
わざわざ「一つぐらい」って書いてるだろ?
誰も長々と有用な警告すれとは言ってないよ。

>>私の何の得になる?

だからそんなあんたの警告は無意味だって言ったんだ。
002017NGNG
すでに騙り煽りが始まってるしな。(ワラ
0021デフォルトの名無しさんNGNG
( '_') たぶん自分ができるからって自慢したかっただけなんだろうね。

    ('_' ) ああ、そのにおいがプンプンしたレスだったもんな。
0022デフォルトの名無しさんNGNG
>>18の騙りは、>>20で

>すでに騙り煽りが始まってるしな。(ワラ

を言うための>>17の自作自演に1000カプリコ
0023デフォルトの名無しさんNGNG
アセンブラ(゚д゚)ウマー
0024デフォルトの名無しさんNGNG
チチンプイプイ
アセムプイ!
↓
(゚д゚)ウマー
0025デフォルトの名無しさんNGNG
騙り煽り厨発生か・・。春だな・・。
0026デフォルトの名無しさんNGNG
沈むまで待とうや。
0027デフォルトの名無しさんNGNG
でー、どれがおかしなレスだって?>13
一個ぐらい上げてくれよ
0028デフォルトの名無しさんNGNG
「前スレ」
「まえスレ」「ぜんスレ」
0029デフォルトの名無しさんNGNG
アセンブラ…(;´Д`)ハァハァ...
0030デフォルトの名無しさんNGNG
>13 典型的な傲慢オナニーレスだね。
   「警告」って・・・。バカジャネーノ。
0031デフォルトの名無しさんNGNG
GNUのアセンブラ処理系ってどこで手に入りますか?
0032デフォルトの名無しさんNGNG
GAS NASM で検索して下さい >.31
003331 NGNG
ありがとうございまーす!
0034デフォルトの名無しさんNGNG
つーかモルァってなんだよ。
まるでアセンブラやる人間が変人ばかりみたいだ。

0035デフォルトの名無しさんNGNG
ワラタ
0036デフォルトの名無しさんNGNG
変人だと思いますがモルァ。
0037デフォルトの名無しさんNGNG
ぴっぴっぴっぴっぴっぴってさぁ
うるせーんだよ!ばーか!
時計か?あん?まんこか?
みんこか?むんこか?

まんこ
みんこ
むんこ
めんこ
もんこ
ま〜〜ん〜こ〜〜〜
0038>37NGNG
常人がキティのフリして書き込んだらイタイ。
自分の厨房っぷりをさらけ出しているようなもんだ。
0039デフォルトの名無しさんNGNG
Oh!Bakaガ イパイ イマスネェー
0040バイク板の鬱な藁人魚NGNG
前刷れで質問したものですが、回答が得られなかったので
再度書き込みますスマソ

いま、PC/AT用のM$-?OsのIPLを解析しているのですが、
INT 1Ehの飛び先アドレス([0000:0078]:[0000:007A])をポインタにして
参照される、DISKBIOSへのパラメータブロックの内容が分かりません。
ExDEBで覗いてみても、ベクタ1EはNoSpecialUseと出てきて参考になりません。
どなたかDISKBIOSパラメータブロックの詳細をご存知の方
いらっしゃいましたらお教えください。
ヨロシコお願いします。
0041MukikiNGNG
>アセンブラやる人間が変人ばかりみたいだ。

今の時点では変人しかいませんが、なにか。
ちなみにわし変態です。(w
0042デフォルトの名無しさんNGNG
初学者用情報集

MASM32
http://www.movsd.com/masm.htm

NOWSMART ASSEMBLER
http://homepage2.nifty.com/nowsmart/

多摩ソフトウェア LASM Ver2.32 体験版
http://www.tamasoft.co.jp/

DOS x86命令 MASMヘルプファイル
http://homepage1.nifty.com/radio_tech/

アセンブラ入門
http://www.d1.dion.ne.jp/~ecb/assembler/assembler00.html
0043デフォルトの名無しさんNGNG
>>40
http://www.tkcity.net/~nobusan/index.html
のどっかでIPLだかMBRだかの解析をしていたような気がします。

あと、8.4GBの壁を越えるためのBIOSだましのソフトを解析するのもよろしいかと。
もうやってるかもしれませんが。


関係ないけどこのスレッドがx86限定な名前じゃなくてちょっと安心しました。。
0044 NGNG
RUBY煽り出来ないせいか、変な煽り入れてるのがいるなー。
0045バイク板の鬱な藁人魚NGNG
>>43
どうも有り難うございました。
うーん。ただ、肝心な部分が書いてないっすね。

以前、PC-98でOS組んだときは山のように資料があって
楽だったのですが、PC/ATのBIOS触るのは殆んど初めてなので
難儀してます。なんかイイ書籍とかHPあったら教えてください

>x86限定な名前じゃなくてちょっと安心しました
そーっすね。最近わたしも、V850とかHS-3とかのアセンブラを
勉強してます。
送り元(S)と送り先(D)が逆なのが気持ち悪いです・・・(藁

IPL解析のほうは、ディスク上のBPBの内容がPC-98のM$‐?OSと
同じことに気づき、大体完了しました。
相変わらずINT1E周りは詳細不明のままですが・・・(鬱
BIOSからのカーソルの制御ってどうやってやるんだろう??
とか、GV-RAMのマッピングとか、分からないことがたくさんあって
大変です。
0046バイク板の鬱な藁人魚NGNG
あ、HS-3じゃなくてSH-3です。スマソ

しっかし、ここ伸びないっすね
いっそのこと”アセンブラでPC/AT用OSを書く”刷れとか
立ててみていいっすかね、なんて書いてみるテスト
0047デフォルトの名無しさん NGNG
>>46
アプリケーションプログラマのOSに対する複雑な感情が
出てきて、イイスレにはならないだろうと予言。
0048バイク板の鬱な藁人魚NGNG
>>47
なんだかなぁ
そんなもんですかね。シミジミ
複雑な気分っス
0049デフォルトの名無しさんNGNG
>>40
Ralf Brown's Interrupt List
http://www.ctyme.com/rbrown.htm
OSが組めるなら読解も楽勝でいけるでしょう
0050バイク板の鬱な藁人魚NGNG
どうも有り難うございます(^o^)/
0051デフォルトの名無しさんNGNG
このことですか ?

FDD パラメータ (サイズ 11 bytes)
+0 Step Rate,Head Unload TIme DFH (b7-b4:rate, b3-b0:time)
+1 Head Load Time, DMA Mode 02H (b7-b1 time, b0 DMAを使わない)
+2 Motor Off Time(単位は55ms) 25H
+3 セクタ長 02H(512bytes)
+4 End of Track 08H, 09H, or 0FH
+5 Gap Length 1BH
+6 Data Length FFH
+7 Format時のData Length 50H or 54H
+8 Format時のData Pattern F6H
+9 Head Settling Time(単位 1ms) 0FH
+10 Motor On Time(単位 125ms) 08H
0052バイク板の鬱な藁人魚NGNG
>>51
おわあ、有難うございます。これっす!!
ああ、よかた。これでIPLが完全に掌握できる!(*o*)/
ただ、IPLが
/IPLによってつくられるDISKBIOSパラメータブロック(0000:7C3E-0000:7C48)
0000:7C41 db Sec/TrackB ;Sec/Trackのコピー(=12h)
(= +4 End of Track 08H, 09H, or 0FH))

0000:7C52 BF3E7C MOV DI,7C3E
0000:7C55 B90B00 MOV CX,000B
0000:7C58 FC CLD
0000:7C59 F3 REPZ
0000:7C5A A4 MOVSB
0000:7C61 8B0E187C MOV CX,[7C18] /[7C18]=0012(=Sec/Track)
0000:7C65 884DF9 MOV [DI-07],CL /[7C41]=12(Sec/Track)
というように、+4の所にトラック当たりのセクタ数を書いてるのが気になります。
私の計算がずれているだけかもしれないので、後で、ダンプして調べて見ます。
走も有難うございました。
0053バイク板の鬱な藁人魚NGNG
ごめんなさい、0000:7C41の所は0000:7C42に読み換えてください。
005443NGNG
>>45
>なんかイイ書籍とか
もうもってるかもしれませんが、とりあえず
http://www.oadg.or.jp/
にDOS/Vアーキテクチャの仕様書がハード/ソフトともにあります。無料。
ダウンロード時に登録させられますが、とくにどうなるということは
ないようです。

ただ、これによるとint 1Ehはシステム予約になっていて詳細不明ですが。。
0055バイク板の鬱な藁人魚NGNG
>>54
どうも、毎回ありがとです。ちなみに、うちの環境では、3.5MBのほうのPDF
が、壊れてて開かないのですが???あれれ?
0056デフォルトの名無しさんNGNG
10年位前にこんな本があった(フェニックスbiosの解説)
ABIOS for IBM(R) PS/2(R) Computers and Compatibles:
  The Complete Guide to ROM-Based System Software for OS/2(R)


0057バイク板の鬱な藁人魚NGNG
調査してまいりました。
IPLから、IO.SYSに制御が渡された時点でのint1Ehの中身です
+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A
DF 02 25 02 12 1B FF 54 F6 0F 08

+4以外は51氏の記載どうりなのですが、+4は、ブートセクタ上の
Sec/Track情報をIPLが書き込んでいます。

BIOSが、EndOfTrackかSec/Trackかを自動判別して利用する
ということでしょうか?
用途はどちらも同じと思われるし・・・
0058デフォルトの名無しさんNGNG
違った---CBIOSの方でした
0059デフォルトの名無しさんNGNG
あせむぶらでAT用のグラフィックライブラリを作ろう!
と言ってみるテスト
0060バイク板の鬱な藁人魚NGNG
>>59
いいっすよ、仕事のついでに・・・

誰か手伝ってくれるなら尚良いんですが・・・
0061デフォルトの名無しさんNGNG
資料の当時は 1.44MB無かったはず(8, 9, 15sectorのみ)
0062バイク板の鬱な藁人魚NGNG
>>61
なるほど、そうなんだ。
もれ、ずっとPC-98だったからなぁ

>>59
っで、どんなのキボーンするよ??
0063デフォルトの名無しさんNGNG
>>62
Xサーバ
0064バイク板の鬱な藁人魚NGNG
>>63
藁藁
まぢ?
Unixはなぁ。苦手だなぁ。
VGAとX鯖の仕様を全部分かりやすく教えてくれたら、(紙媒体キボーン藁)
コーディングはするけど。

もうちっと使いやすいのにしようぜ。
って、漏れ以外のひとに、今更使い道あるのか知らないけどねぇ。
0065デフォルトの名無しさんNGNG
repの使い方おしエロィ
0066バイク板の鬱な藁人魚NGNG
>>65
本買ってきて勉強汁!ゴルァ
といいたい所だが、
rep リピートプリフィックス
    直後のストリング命令をCXが0になるまで繰り返す
とりあえず、アスキーの”はじめての8086”でも買ってきなさい
若しくはフリメをさらしなしゃい。いろいろ教えたゲルから。
0067デフォルトの名無しさんNGNG
IBM-PC/ATの割り込み/メモリ関係は定番文書Intrrupt Listを見るべし。
INT 1Eも書いてあるよ。

http://www.vector.co.jp/soft/data/prog/se015018.html

VGA/V-TEXTはフリーソフト書いたり、仕事でもいくらか書いたことがあるから
それなりにはわかるけど。。。
0068バイク板の鬱な藁人魚NGNG
>>67
えっと、これは>>49とおなじかな?
なにはともあれ、どうも有り難うございます(^o^)/cd10
006967NGNG
がいしゅつでしたか。スマヌ
0070デフォルトの名無しさんNGNG
>>66
ありがとぅ
0071バイク板の鬱な藁人魚NGNG
>>70
バッチいコードで申し訳ないが、Repの参考例
.186オプション必要、ディレクションフラグクリアーのこと
DOS/V機のT-VRAMを掃除する(ディスプレイのクリアー)
サブルーチソ

disp_clr: pusha
push es
mov ax,0b800h
mov es,ax
xor di,di
mov ax,0720h
mov cx,07d0h
rep
stosw
pop es
popa
ret
0072デフォルトの名無しさんNGNG
age
0073デフォルトの名無しさんNGNG
>若しくはフリメをさらしなしゃい。いろいろ教えたゲルから。

((;゚Д゚))ガタガタブルブル
0074デフォルトの名無しさんNGNG
age
0075記念カキコNGNG
vclr:
  ld  hl,vram+vsize
  ld  de,0
  ld  b,(vsize/16)-1
  di
  ex  sp,hl
loop:
  push de
  push de
  push de
  push de
  push de
  push de
  push de
  push de
  push de
  push de
  push de
  push de
  push de
  push de
  push de
  djnz loop
  ex  sp,hl
  ret
0076記念カキコNGNG
ei忘れてるし。
0077デフォルトの名無しさんNGNG
x86や68kでは何とも思わないが、Z80のニモニックを小文字で書かれると
妙に違和感があるのはなぜだろう…。
0078新米NGNG
B4 01 CD 21 3C 61 74 02 CD 20 B4 09 BA 13 01 CD
21 EB F5 0A 0D 20 20 61 20 70 75 73 68 65 64 21
20 28 5E 2D 5E 29 20 0A 0D 24

できたっす!debugで組んだっす!
0079デフォルトの名無しさんNGNG
mov r1,(getglobs+8)&0xff000000
add r1,r1,(getglobs+8)&0xff0000
add r1,r1,(getglobs+8)&0xff00
add r1,r1,(getglobs+8)&0xff
RISCは面倒
0080鬱な藁人魚NGNG
取り敢えず、ファイルシステムがけてーいした
DOSのFATとDIRエントリをファイルとして残しつつ、
独自のファイルシステムを載せるという、○刃の?
メンドクサイ藁
あと、昨日IntelのPentiumファミリーデベロッパーズマニュアル下巻
を自費にて購入。読みづらいけど、使える。|(^o^)/"イイ!!
メンドクサイのがお好きな人には尚お勧め(藁
0081アセンブラAXNGNG
やっぱ 基本はアセンブラですよね♪
Z80と 8086と SH-4 しか触ったこと無いですけど
でも ほとんど忘れてしまったので また勉強しなおします
今度は何を叩こうかな〜
ワンダースワンを叩こうかな? 開発セット売ってるみたいだし
80186互換機らしいけど メモリマップとか 載ってますかね?
OSも作れるのかな? やっぱ 石に入ってるかな?
ちょっと調べてきます
あげとこ♪
でわ
0082デフォルトの名無しさんNGNG
>>75
ex sp,hlなんてあったっけ。
ex (sp),hlとかld hl,spがあったのは覚えてるんだが。

>>79
そんな巨大な即値が使えるのなら、何で分解するのかがわからん。
getglobsが外部リンケージで、リンカがへぼだったとしても、
mov r1,getglobs
add r1,r1,8
でだめなのか?
0083デフォルトの名無しさんNGNG
アセンブラも知らずにCPUコアのエミュ書くのはafoのすることですか?
0084デフォルトの名無しさんNGNG
>>75
ループカウンタは8ビットでいいのか?
vsizeは16の倍数なのか?
なんで-1するんだ?
1イテレーションで32バイト書きこんでるように見えるのだが?

>>83
デバッグはどうするんだ。ニモニックくらい覚えれ。
0085デフォルトの名無しさんNGNG
SHやシステム開発関連の会社は、
新人教育でアセンブラを必修とすべきだ。
コンピュータの概念の全てが、アセンブラの中に詰まっている
0086デフォルトの名無しさんNGNG
(´-`).。oO(概念の全ては言いすぎだろう…)
0087デフォルトの名無しさんNGNG
>>85
高級言語の概念以外はな
0088デフォルトの名無しさんNGNG
nopって何のために入れるの?

厨な質問でスマソ
0089デフォルトの名無しさんNGNG
いろいろあるぞ
何かの時間待ち(I/O, FPU, etc)
delay slotに入れるものがないときの詰め物
あとでパッチ当てるための遊び
ループの先頭のword alignのためのpadding

nopは効果のない命令にアサインされていることもある
例えばx86では nop と xchg (e)ax, (e)ax は同じオペコード。
009089NGNG
>>90
ありがとうなかなか面白いね。
アセンブラ覚えてみようかなぁ。
0091バイク板の鬱な藁人魚NGNG
>>90
Exdebで検索掛けるとExdebの作者が公開している資料もろもろ
が手に入るよ。Exdeb自体も結構使えるからお勧めっス
バグがあったような気もするが・・・
009289NGNG
よし!手始めに今日届いたウイルスを解析しちゃル!




・
・
・
やっぱり地道にいこう。
0093アセンブラAXNGNG
インラインアセンブラ使ったら 微妙に遅くなった・・
C++のクラスライブラリには インラインアセンブラ 相性悪いね
コンパイラの最適化の邪魔しちゃうみたい
キャッシュ、先読み、パイプライン 等も考慮して書くなんて 大変です・・・
やっぱ 最近のCPUは アセンブラ 辛いわ・・

でも MMXを使う時は アセンブラのメリット出ますね
どうやって ビジネス系の仕事でMMXを使うか・・ わたしの課題

アセンブラ使って 何か作りたいな〜
0094デフォルトの名無しさんNGNG
アセンブラ使える人ってプログラミングのプロフェッショナルぽくってかっこいいね。
まあ実際そうなんだろうけど。
ところでみなさんの偏見でかまわないのだけど
アセンブラの難易度というのはどれくらいなの?
言語と比べていただけるとわかりやすくて幸いです。
ex:Perlと同じくらい簡単。
0095デフォルトの名無しさんNGNG
>>94 覚える事が嫌な人 シンプルな事が好きな人には Perlより簡単
0096デフォルトの名無しさんNGNG
>>95
単純なので書くのは簡単。
単純すぎて思った機能を実現するのが大変
煉瓦を一つ一つ積み上げて家を建てるような。
0097バイク板の鬱な藁人魚NGNG
ひょんな所から、今度X68kが数台譲っていただけることになった。
んで、質問っす。今から68kの汗、覚えて何か役に立つかなぁ?
外部バスとか使いやすいですか?
ってーか80x86汗使いからのクラスチェンジは大変という噂が・・・
どうなんでしょうか。
0098デフォルトの名無しさんNGNG
>68kの汗、覚えて何か役に立つかなぁ
 MPUとしてはもう作ってないですが、
 ASICに組込まれたエンジンとしては世の中に存在はします

>80x86汗使いからのクラスチェンジ
その違いが、よりシンプルな印象と取れるか貧弱と取れるかが評価の分かれ目
0099アセンブラAXNGNG
X68k でも Z80 でも
きゃっする よりは覚える価値があると思います
0100バイク板の鬱な藁人魚NGNG
>>98,99
レスさんくす
どっかに68k汗の解説HPか、txt転がってないかなぁ。
検索したら関係ないHPイパーイ出てきて裁ききれなひ(汗
0101デフォルトの名無しさんNGNG
gnu asの教科書ありますか?
0102デフォルトの名無しさんNGNG
アセンブラ:RISC
C+++クラスライブラリ:CISC

俺ってチャレンジャー。
0103バイク板の鬱な藁人魚NGNG
>>102
チャレンジャーだ。がむばれ
0104デフォルトの名無しさんNGNG
アセンブラ自体は必ずしもかけなくてもいいけど、アセンブラの概念がわからんプログラマはすぐに
死んでください。
0105デフォルトの名無しさんNGNG
CPUの動作原理の事を、アセンブラの概念とかゆっているプログラマは、すぐに回線切って首吊ってください。
0106 NGNG
CPU設計したことないプログラマは電車の屋根に登って死んでください。
0107デフォルトの名無しさんNGNG
ああ、やったなぁ昔、ビットスライスプロセッサ組み合わせて…
0108デフォルトの名無しさんNGNG
>>106
おことわりします。
0109デフォルトの名無しさんNGNG
チューリングマシンの命令一覧って忘れてしまったよ。 どっかに落ちてないかな
0110デフォルトの名無しさんNGNG
入社していきなりフルカスタムCPUの設計を押しつけられましたが、何か?(;´Д`)

0111デフォルトの名無しさんNGNG
>>100 http://www.zophar.net/tech/68000.html
0112バイク板の鬱な藁人魚NGNG
>>111
mov ah,09h
mov dx,offset Mes01
int 21h
xor ax,ax
int 21h

Mes01 db 0dh,0ah,"Thanx!!",0dh,0ah,'$'
0113デフォルトの名無しさんNGNG
日立SH系やってる人いるかな?
日本人が設計したらしいけど、もうダサダサなんだよね。
とくにプリプロセッサの .aif .aelse .aendi って気持ち悪すぎ。
あと、左から右へ代入する表記もやる気を無くすよ。
0114デフォルトの名無しさんNGNG
call/ret に相当するコードもなくてマクロ使わなきゃ
いけないんじゃなかったけ。
Intel系みたいにマイクロコードに落とし込んでも
使いやすくしたら良かったんじゃないかと思ったりする。>sh*
C で書くならどっちでもいいけど。アセンブラはちときついかなと思ったり。
0115デフォルトの名無しさんNGNG
>>113
それより、無理矢理16ビット長にしてるから、逆汗してデバッガで追いかける
ときには見にくくてしょうがない。とりあえず、Cのソースをエディタで開いて
追ってるけどつらいわ。

call/retは一応あるよ。ただ、命令長が16ビットだから、命令のなかに
コールアドレスは含まれない。基本的にPC相対指定でジャンプアドレス
を格納したメモリを指定して、そっからロードしてジャンプとかになる。
これを逆汗でみたときはさもありなん。
0116バイク板の鬱な藁人魚NGNG
>>113-115
V800系は如何?
って使ってる人自体少ないかモナー
0117 NGNG
>>110
10年前なら東芝やNECの第一線級でもマトモな乗算器も組めない有様
だったけどねえ。
今はやれる事すくないかもな。
Hashをハードで組むとかどう?
0118110NGNG
カスタムやらされたのは昔の話だよ。8,9年ぐらい前。
VHDLやらVerilogなんてものは話で聞くぐらいだった日々。
A1図面にぎっちり書かれたラッチをおいつつ、旧CPUの解析・・・
ま、小規模なものだったけどね、さすがに。




でも、いちばんつらかったのは、ロジックより内蔵LCDドライバ
の特性の維持の方だったけどな。温特、負荷特でちゃんとした
特性でなくてなぁ・・・。コンパレータがなぁ・・・うぅっ

いまはすっかりソフト屋だけどね。
0119デフォルトの名無しさんNGNG
SHか、割り切り方が潔くて好きだな。
0120113NGNG
>>115
そうそう命令長が16ビットなのも嫌だねぇ。
なんでもPC相対で遠くから読みだしてんだから。
言語設計がセコすぎだよ。
0121藁人魚NGNG
ふと疑問に思った
プロテクトモードで動作しているOSってBIOSは、どう扱っているんだろう?
もしかして、仮想8086モードにぶち込んで動かしてるとか?
或いは殺してるんだろうか?
0122デフォルトの名無しさんNGNG
SHだと、TRAP命令でスーパーユーザーモードに入るので、そこから
BIOSに入ればよろし。x86ならコールゲート使えばいいんだっけ?
0123 NGNG
0124デフォルトの名無しさんNGNG
普通、プロテクトモードで動くOSはリアルモードBIOSなんて呼ばないだろ。
PCI BIOSとかは32bit BIOSがあるらしいが。
0125デフォルトの名無しさんNGNG
>>97
palmプログラマの中では現役。
俺はRISCが気に入ったので、もうCISCには戻りたくないが。
0126デフォルトの名無しさんNGNG
昔の286用のDOS-Extenderは、DiskBIOS呼ぶのに、一旦CPUをリセットするとかやってたよ。
0127デフォルトの名無しさんNGNG
palmはもうstrongArmに移行するんじゃなかったっけ。
会社が保てるかどうかが問題かもしれんけど。
0128デフォルトの名無しさんNGNG
palmってヤヴァいの?
0129デフォルトの名無しさんNGNG
SONYが手を出す→PalmOSはマイナー路線まっしぐらケテーイ
0130デフォルトの名無しさんNGNG
>>128
新聞か何かの記事で見たなあ
速度遅いから、最近のPDAでの採用が減ってるらしい
0131デフォルトの名無しさんNGNG
PDAとノートパソコンの区別が付かないヤシが、それだけ多すぎるって
事でしょうか。つーか早くARMのpalm出せ。
0132仕様書無しさんNGNG
>>130
つーかPocketPCとPalmを比較する時にCPUのクロックで比較して
PocketPCの方が速いと思い込んでいるのではないかと。
まあ、速いのは間違いないが。
0133デフォルトの名無しさんNGNG
>>132
コンセプトが違うよね。
一方はミニWindowsを。
もう一方は必要最低限の電子システム手帳を。
0134デフォルトの名無しさんNGNG
>133
そーいやこんなのが発表されましたな
ttp://www.zdnet.co.jp/mobile/0204/17/n_oqo.html
0135デフォルトの名無しさんNGNG
COMMETII & CASLII しかわからないんですけど、
いい本ないですか?
0136デフォルトの名無しさんNGNG
>>135
基本情報技術者直前対策。
0137135NGNG
あの、CASLからステップアップというか、そういう本があれば
教えてもらいたいと思いまして...
0138デフォルトの名無しさんNGNG
未だにC,C++のコード中にアセンブラ書いてる人くらい いますよね?
0139デフォルトの名無しさんNGNG
書きたくはないが、VC++もx86もFPUも時々ものすごくアホなのでしかたないんだ
0140デフォルトの名無しさんNGNG
86系CPUの解説リファレンスとしてはIntelさんのマニュアルがベストですか?
0141デフォルトの名無しさんNGNG
>>140
仕様書。と。
0142デフォルトの名無しさんNGNG
ARMのPalmと68KのPalmってエンディアンが違うんだよね・・・
あれ、PalmSourceでいろいろ小細工するみたいなことを以前に聞いたけど、
どうせ問題があとからいろいろ出るような気がする。
0143デフォルトの名無しさんNGNG
アセンブラでDOS/Vのキー処理する方法を教えてください。
DOS環境で。

お願いします。
0144デフォルトの名無しさんNGNG
>>143
システムコール使うかBIOS叩くかポートから直接制御するか。
0145デフォルトの名無しさんNGNG
>>142
Armはバイエンディアンなので。
PPCもバイエンディアン。
0146デフォルトの名無しさんNGNG
Z80系なんですが・・・
KY-80(Z80上位互換CPU)について知ってる人はいませんか?
ポート割付が不明なので、コードが理解できません。助けて・・・
0147デフォルトの名無しさんNGNG
>>144
BIOS経由は遅いと聞くので、できればポートから直に読み取るケースの方を教えていただけませんか?
なかなか情報源がなくて…。
0148142NGNG
>>145
バイにしても、システム作るときにどっちか決めるんだよね。
オレ、SHしか使ったことないからARMはよく知らないんだけど。

去年聞いただけだからアレだけど、ARMをリトルエンディアンで使うという
話だったんだよなぁ。質問の時間に、やっぱり突っ込んでいた人いたけど・・・

なんで同じエンディアンにしなかったんだろ? 互換性考えたら、普通は
エンディアンを同じにしておくと思うけど。
0149デフォルトの名無しさんNGNG
>>147
キー入力速度を考えれば、そんなに速くなくてもいいと思う・・・

あと、USBキーボードはどうするの? たぶんLegacyインターフェイス
エミュでI/Oポートまでエミュしてないと思うよ。
0150デフォルトの名無しさんNGNG
BCCのインラインアセンブラってど
0151デフォルトの名無しさんNGNG
────プログラマとは、法則性を考える職業である。
0152デフォルトの名無しさんNGNG
>>143
getchあたりのソース読め
0153デフォルトの名無しさんNGNG
 ちょいと教えて下さい。

 68000(X68K)を少しかじった事があるのですが、ペンティアム以降の
資料を書店で探したけど全然ないんですね。
 友人に「金出して買え」と言われるものの本屋にないなんて。
 開発をWindowsに移行したいのだけど手始めに撫でるだけでもx86系の
概念に触れておこうと思ったのに。

 ニーモニック自体は、386教本で十分って事なんでしょうか?
0154デフォルトの名無しさんNGNG
>>153
マイクロソフトのサイトからDLできるよ。
0155デフォルトの名無しさんNGNG
問題ない事もないが、同じ勉強するのなら金出してでも
今の時代に近い事をやるべき。と言ってみるテスト
0156デフォルトの名無しさんNGNG
>>153
ここのpdf全部DLして見れ。
http://www.intel.co.jp/jp/developer/design/pentiumiii/manuals/index.htm
0157デフォルトの名無しさんNGNG
>>154
MSのサイトにも情報あったっけ?
まことに申し訳ないですが、URLきぼーん
0158デフォルトの名無しさんNGNG
MASMがどっかに落ちてるよ、ググルで調べ
0159デフォルトの名無しさんNGNG
>>155
書籍は386までのしかないの。
0160デフォルトの名無しさんNGNG
ふーん、ないんだ。

http://www.ascii.co.jp/books/detail/4-7561/4-7561-0213-1.html
0161153NGNG
>>154 ヒント有難う。
>>156 モノを教えてくれて有難う。 取り敢えずReGetに渡して、
今夜は寝ます・・・30時間近く寝てない・・・。
0162デフォルトの名無しさんNGNG
PDFだけだとつらいよね。検索性はいいのだけど、一通りの
章を読みたいときはどうも。。。

最近の印刷所ではPDFデータで入校できるんだけど、有志で印刷代
だして印刷、製本・・・ってのは、やっぱり著作権の絡みで駄目かなぁ・・・ヤパーリ
0163デフォルトの名無しさんNGNG
>>162
会社で印刷するとタダ。
0164カヲルNGNG
そう、STフィールドはx86プロセッサの誰もが持っているセグメントの壁だということを
0165デフォルトの名無しさんNGNG
x86は4Gの壁
0166デフォルトの名無しさんNGNG
>>165
もっともそれはx86に限らず大部分の32ビットCPUに言えるけど。
0167デフォルトの名無しさんNGNG
くそー一般命令と特殊命令ってなんだよヽ(`Д´)ノ
おじさん怒っちゃうぞ!!
0168デフォルトの名無しさんNGNG
Linker & Loaders読んだけど86のアーキテクチャが複雑だぞモルァ!
0169111NGNG
>>100
もひとつ。
ttp://www.asahi-net.or.jp/~YY8A-IMI/x68/data/000op.hed.htm
0170デフォルトの名無しさんNGNG
Javaの開発やってますけど、
で行きつくところまで行きついてしまってMASMで開発しています。
実に合理的理由があってやってるのだけど、周りにどう思われるか想像に固くない。

あなたの周りにJavaの開発にMASM使ってる人が居たら暖かい目で見守ってあげましょう(藁
0171デフォルトの名無しさんNGNG
>>170
ついでにバイトコードアセンブラも作ってください・・・。
0172デフォルトの名無しさんNGNG
それはすでにあるよ。
jasminとか。
まあバイトコード自体使えないけど。
0173デフォルトの名無しさんNGNG
1はどこに行ったのデショウカ?
0174デフォルトの名無しさんNGNG
>>164
ワラタ
0175デフォルトの名無しさんNGNG
>>170
合理的理由って何よ?
0176デフォルトの名無しさんNGNG
まだoptasm使ってる人いるのかなぁ・・・
0177デフォルトの名無しさんNGNG
秘密。
0178デフォルトの名無しさんNGNG
age!
0179デフォルトの名無しさんNGNG
>>175
nativeコードで実行とか?
0180デフォルトの名無しさんNGNG
俺のタマタマもリロケーション可能形式だぜ!!
0181デフォルトの名無しさんNGNG
Athlon(Duron)におけるSSEの実装ってどうなっているのでしょうか?
Pen3で動かした場合とまったく同じ挙動を示すのかどうかということです。

計算結果は同じでなければなりませんが、たとえばある変更によって
Pen3では速度が向上するがAthlonでは効果がないとか、そういった
ところがどうなっているのかが疑問です。
0182デフォルトの名無しさんNGNG
組み込み1チップマイコンならまだまだアセンブラは現役だと思うがどうか。
Z80知ってりゃATMEL AVRなんて30分もあれば理解できるはず。
(PICはやや特殊だから嫌い…)。
わざわざC使うまでもない制御なんていくらでもある。
0183デフォルトの名無しさんNGNG
>>170
携帯Javaと見た。
0184デフォルトの名無しさんNGNG
次スレは
アセンブラ…ヽ(`Д´)ノウワァン
にしましょう!
0185デフォルトの名無しさんNGNG
>>184
果たして次スレはあるのだろうか。
0186デフォルトの名無しさんNGNG
根性で次スレまで伸ばしましょうか
0187名無しさん@EmacsNGNG
次スレまであと813ステップですか。
0188デフォルトの名無しさんNGNG
ウメー
0189デフォルトの名無しさんNGNG
埋め
0190デフォルトの名無しさんNGNG
nop
0191デフォルトの名無しさんNGNG
jmp $+2
0192start!NGNG
__asm{
0193デフォルトの名無しさんNGNG
}
exit(-1);
0194デフォルトの名無しさんNGNG
>>182
確かに組み込みなら現役ですね。といっても過去の遺産をずるずると
ひきずっているだけのものがほとんどですが。

>>わざわざC使うまでもない制御なんていくらでもある。
これはどうかと・・・逆のような気がします。わざわざアセンブラで書くまでもない、と。
事実、バイト先でも時間と暇があればできるだけCで一から書き直してます。
0195デフォルトの名無しさんNGNG
>>194
>事実、バイト先でも時間と暇があればできるだけCで一から書き直してます。
時給稼ぎのために、アセンブラで済むコードをわざわざ手間暇かけて
(機械語的に)無駄の多いコードに書き換えてるんですか?
#「コンパイラで最適化すれば良いじゃん」ってのは無しね

きっと、まともな制御ソフトなんて書いたこと無いんですね。
0196デフォルトの名無しさんNGNG
書き直すのは確かに「わざわざ」だな。
新規なら慣れたほうが作りやすいだけの話。
その後の保守も考えるならCのほうがリスクが低いかな。てなところでしょ。
0197194NGNG
バイト先では与えられた仕事をこなすだけで、書き直すかどうかを決めるのは上の人です。
196さんの言うとおり、「その後の保守」これに尽きます。
実際アセンブラでぐちゃぐちゃ書かれたせいで割を食うのは
書いた人ではなく、その後始末をする人ですから。
ぼくの仕事もそんな後始末が多いです。ちょっとした仕様変更なんかも
ものすごい重労働になってしまいます。だからこそバイトに
やらせるんでしょうが・・・。
Cで「わざわざ」書き直すのも、その後の仕様変更を見越してのことです。

>>きっと、まともな制御ソフトなんて書いたこと無いんですね。

いきなりこういうことを言える神経を疑います。
0198182NGNG
確かに保守の手間や再利用することを考えればCが得策でしょうね。
ROM容量を気にするような場面は少なくなってきていますし。
まぁアセンブラも書き方次第で可読性はかなり上がるとは思うのですが…。
0199デフォルトの名無しさんNGNG
アセンブラか、(アセンブラの)開発は、もうこの世から

消えている、と思ってました。(or 思ってます。)

ごめん。言いたい事、書いちゃて。
0200デフォルトの名無しさんNGNG
世の中のこと何にもわかってないんだね
0201デフォルトの名無しさんNGNG
保守 すなわち C++

ゲームボーイ (;´Д`) アセンブラ
0202デフォルトの名無しさんNGNG
4 or 8ビットCPUはアセンブラで組まないと、速度遅い && メモリ空間
すぐイパーイ
0203デフォルトの名無しさんNGNG
>>>きっと、まともな制御ソフトなんて書いたこと無いんですね。
>
> いきなりこういうことを言える神経を疑います。

>>202の言ってるような機能が制限されたハード環境で開発したり、
信号のタイミングをシビアに制御するようなことを>>194はしてないってこと?
制御ソフトの要求仕様に対して、オーバースペックのハードを使ってるのなら
可読性を優先できるかもしれないけど、必ずしもそうじゃないでしょ。
0204デフォルトの名無しさんNGNG
実現しようとしてるソフトの仕様&アルゴリズム等を
ちゃんと理解してる人の書いたアセンブラは可読性高いと思うけどな。

アセンブラに限らず、他の言語でも同じだと思うけど。
0205194NGNG
うーん、H8なんかで開発することはあります。Z80もたまに。
それなりの理由があればアセンブラで開発することもありますが、
最近はオーバースペックのハードが多いです。

>>わざわざC使うまでもない制御なんていくらでもある。

僕はただ、これに反応しただけなんで。
アセンブラじゃなきゃダメならそうするしかないですし。

ちなみにぼくはバイトといっても時給じゃないんで、わざわざ
時間かけても給料増えないっす・・・。むしろ損。
外注先の下請けってなもんです。学校行ってると、時給制じゃ
ろくに稼げないんで。
0206デフォルトの名無しさんNGNG
台数ベースなら、絶対4ビット、8ビットマイコンの方が多いね。
ROM/RAM、液晶ドライバ&キー入力I/F込みで1チップ100円の世界。

0207デフォルトの名無しさんNGNG
とりあえず、>>194がやってる「制御」ってのは、
ICEとロジアナでデバックするような代物ではないのね。
0208194NGNG
ICEは使ったりもしました。
僕はソフトウェアの方の人間なんで、ハードウェアを
さわらせられるとおもしろい反面、気を遣うし壊しそうで怖いです。
0209デフォルトの名無しさんNGNG
まだ792ステップあるぞ
がんがれ
0210デフォルトの名無しさんNGNG
いっそマシン語直書きとか?これの後半みたく(w
http://pc.2ch.net/test/read.cgi/tech/1014138664/29n
0211デフォルトの名無しさん NGNG
push
0212名無しさん@EmacsNGNG

rts

あれ?サブルーチンから正しく戻れません。
0213デフォルトの名無しさんNGNG
macro jmp_bc
    push bc
    ret
    endm

なんての思い出した
0214デフォルトの名無しさんNGNG
マシン語とは?(・_・)
ニーモニックとは?(・_・)
0215デフォルトの名無しさんNGNG
もう完全に記憶の彼方なんだが
TurboAsmだっけか? REPEATってマクロあったよな
あれ便利だったんだけどNASMで似たような事できん?
0216デフォルトの名無しさんNGNG
PA-RISC で排他制御を行いたいんですけど、gcc で
セマフォを実現するにはどうしたらいいっすかヽ(`Д´)ノモルァ
LDCWS や LDCWX を使うそうなんですけど、
int semaphore = 0, ret = 0;
int*p = &semaphore;
int*r = &ret;
while(ret == 0){
 __asm__ __volatile__ (
   "ldcws 0(%1), %0" : "=r" (p) : "r" (r)
 );
}
これでちゃんと wait 出来てるんでしょうか?(;´Д`)ハァハァ
0217逝って良しの1NGNG
検査プログラム作ってちゃんとロックするか調べて見たら?
0218216NGNG
pthread 使って調べようとするんですけど、
意味不明のコンパイルエラーがでるんスよ(;´Д`)
#include <pthread.h>
とすると、
/usr/include/dce/cma_ux.h でなんかシンタックスエラーがでます(;´Д`)
fork じゃ調べられないですよね?
もう少しがんばってみます(;´Д`)ハァハァ
0219デフォルトの名無しさんNGNG
VizualC++6.0です。
ある構造体があって、+=とか*=とか演算子がオーバーロードされてまして
それが3DNow仕様と普通のCのFPU仕様の2種類作ったんですが、
(3DNow版はオーバーロード関数内に_asm{}。)
インライン展開しないと3DNow版の方が速いんですが
展開するとC-FPUの方が3倍ぐらい速くなってしまいます。
これってどうしてでしょうか?
関数の中に_asm{}があるとインライン展開での最適化に支障が出る場合があるんでしょうか?
またインライン展開された部分のアセンブラコードが見たいんですが
どうやってそのアドレスを知ればいいんでしょうか?
0220デフォルトの名無しさんNGNG
>>219
インライン展開されてないのでは? > _asm{}
0221219NGNG
>>220
なんだか凄い結果ですが、ある計算をした場合
こんな感じになります。
リテール時のコードが見たいんですが
どの部分がインライン展開されたとこなのか
わかんなくて困ってます。

3DNow版
デバック 280.68クロック
リテール 16.86クロック

C-FPU版
デバック 289.51クロック
リテール 6.28クロック
0222デフォルトの名無しさんNGNG
mapファイルを吐かせればいい
0223デフォルトの名無しさんNGNG
/FAsc
0224デフォルトの名無しさんNGNG
>>221
プロジェクトの設定で、アセンブラコード吐き出させるから、
それで見てみれば?

[プロジェクトの設定]->[C/C++]->[ファイルリスティング]
0225219NGNG
アドバイスありがとうございました。
BSCファイルはちょっと使い方がわからなかったので
MAPファイルを使わせてもらいました。
それで、コンパイラ最適化を無効でインライン展開有りだと
3DNowもC-FPUも普通に展開されていることがわかりました。
しかし最適化を速度重視にすると、どこに書いてあるのか
わからなくなります。
とりあえず、もっと勉強して調べてみたいと思います。
0226216NGNG
pthread ウチの UNIX じゃサポートされてないとのことでした。
おとなしく sem_ 系の排他制御を使います。
0227基本NGNG
CASL�Uで出てくるGRnとかGRm、GRxって何ですか??なんか違うんですか?
汎用レジスタってのはとりあえずわかるけど
0228すれ違いですがNGNG
すれ違いですが、すみません。教えていただけないでしょうか?

いいと評判だったLions'CommentaryっていうUNIXのコードの解説本を買いました。
Cのところはなんとかわかりそうなのですが、PDP-11/40というマシンの
アセンブリが全然わかりません。(アセンブリはどのマシンでもわかりません。)
あまり深入りしたくはないのですが、せめてOSが起動するところまでの意味は
わかりたいと思います。
参考書なり、WEBなり、どなたかアドバイスしていただけないでしょうか。
よろしくお願い致します。
0229デフォルトの名無しさんNGNG
>>228
LILOのコードでも読めばわかるのでわ?
で、その解説誰か、教えて?
0230デフォルトの名無しさんNGNG
初心者な質問ですみませんが
K6やPenIIだと、ロード/ストアユニットがあるので
mov eax, [mem]
mov ebx, [mem]
のようにメモリからのロードを続けて配置すると
1カウント、パイプラインがストールすると思うんですが
Athlonには、そのユニット自体ないので競合によるストールは起こらないんですか?
またPenIVはどうなんでしょうか?
0231 NGNG
>>230 根本的に違う。
0232230NGNG
>>231
違うだけ言われても・・。
0233デフォルトの名無しさんNGNG
>>230=231=232
ジサクジエンの臭いがするぞ
そんなに注目してもらいたいのか?
0234デフォルトの名無しさんNGNG
>>230
ストールしてもいいじゃないか。
0235_NGNG
アラインメントってなんですか?なんかいっつも4なんですけど・・・
0236230NGNG
ごめんなさい、確かに勘違いしてました。
パイプラインじゃなくてスーパースケーラでした。
MOVでメモリからレジスタにロードする場合
ロードユニットを使いますよね?
CPUがスーパースケーラで2命令同時実行出来るとして
その2命令が、MOVとMOVなら双方ともロードユニットを使うので
競合して同時実行出来ないと思うんですが、この認識は間違ってますか?

0237235NGNG
すみません。justのが今読んでた文章のところにありました。

>アライメント(alignment)というのはメモリに変数を置くときの置き方のことだ。
>たとえば 32 ビットマシンでは int は当然 32 ビットを使うが、普通はどこから
>でも 32 ビットとれるわけではなく、「4 の倍数バイトから」とか「偶数バイトか
>ら」というふうに決められている。
>なぜかというとそのほうがメモリアクセスを高速化できるからだ。
0238 NGNG
>>236
同時に実行できないと言うのは正しいけど、その命令が隣り合ってるから
パイプラインがストールするとは限らない。
昔のPentium (P5) ならストールするけど。
0239デフォルトの名無しさんNGNG
mov ebp,esp
sub esp,esp
0240デフォルトの名無しさんNGNG
Win32で動くマクロアセンブラでいいのないですか?
MASMはデカいのアセンブルできないし、LASMはNT系でハングる事がある。
0241デフォルトの名無しさんNGNG
>>240
TASM
0242デフォルトの名無しさんNGNG
>>241
サンクス、使えるか調べてみます。
0243242NGNG
ちなみに、LASM、NT系で一般保護違反だしよる。
で、ゴルァメール出してみたら、再現しません。だと。
メモリ外アクセスやからそんときのメモリの状態によって
でたりでなかったりするのは分かるが…
そんなアセンブラ売り出すなよ〜仕事増える。

ちなみに無意味なマクロ挟んだら直ったりします。

dummy_00  proc
        dd    0
        endp
0244デフォルトの名無しさんNGNG
nasmかgas
0245デフォルトの名無しさんNGNG
MASMで500kbのソースアセンブル出来たけど?
0246242NGNG
>>244
調べてみます。

>>245
なんか、equ多用してるでかいソースをアセンブルしたとき、
64KBがなんたらってでた気がする。ちと忘れたスマソ
0247デフォルトの名無しさんNGNG
単にラベル多すぎってことはないかい?
0248デフォルトの名無しさんNGNG
単に1個のセグメントに64K以上並べただけでないのか??
0249デフォルトの名無しさんNGNG
単に>>242が馬鹿なだけってことはないかい???
0250デフォルトの名無しさんNGNG
TASMが一番強力だったような記憶があるよ
0251デフォルトの名無しさんNGNG
WinのEXEファイルのフォーマット教えてください
0252デフォルトの名無しさんNGNG
PEというキーワードで検索するとよいよ
0253デフォルトの名無しさんNGNG
NWSA があるじゃん。
0254デフォルトの名無しさんNGNG
>>251
http://www.wotsit.org/とか
0255251NGNG
>>252-254
サンクス♪
0256242NGNG
>>247
確かに多いかも。
でも、LASMなら通るんですよ。

>>248
86用の実行ファイルではなく、独自の仮想マシン用のコード吐くために使ってます。
1セグメントは軽く超えてます。

あと、>>249の脳では理解できない使い方をしてるので、
私は馬鹿なだけって可能性ももちろんあります。(藁
0257デフォルトの名無しさんNGNG
( ゚д゚)ポカーン
0258デフォルトの名無しさんNGNG
恐縮です、
宿題がどうしても解けません。
JAVA CASL2なのですが。教えてください。
問題は。
A>BならばX=A-Bとし A<=BならばX=B−Aとする。A=10、B=20とせよ。
となっています。

一応

START
LD GR1,A
CPA GR1,B
JPL PLUS ;Aが大きいとき
LD GR2,A
SUBA GR2,B ;B>A
ST GR2,GR3
JUMP OWARI
PLUS LD GR2,B
SUBA GR2,A
ST GR2,GR3
OWARI LD GR0,A
DMEM MSG,GR1,GR3
RET
A DC 10
B DC 20
;DUMP
MSG DC '*MEMORY*'
END

こんなpgを書いてみたんですがうまくいきません。
ご指導願います!!
0259U-名無しさんNGNG
>>258
ラベルの書式を正そう
0260デフォルトの名無しさんNGNG
すみません258の問題はなんとかできました。
ですが、今度は次のaにセットした値が プラスならansに4を
0ならANSに2を
マイナスなら1をセットするPGを考えてます。
でも、これであってるはずなんですけど、なぜかうまくいきません。
pgは↓です。
START
LD GR0,DATA
CPA GR0,ZERO
JPL LAB1
JZE LAB2
JMI LAB3
LAB1 LD GR1,FOUR
ST GR1,ANS
JUMP OWARI
LAB2 LD GR1,TWO
ST GR1,ANS
JUMP OWARI
LAB3 LD GR1,ONE
ST GR1,ANS
OWARI DMEM MSG,DATA,DATA
RET
ZERO DC 0
FOUR DC 4
TWO DC 2
ONE DC 1
DATA DS 1
ANS DS 1
SIGN DS 1
;DUMP
MSG DC '*MEMORY*'
END


エラーメッセージは
H:\casl2>java CASL2 T33
CASL�U Assembler -V1.03(2001/04/25)- ( Date : 2002/6/26 )

オブジェクトプログラムを T33.obj へ出力しました。
END CASL�U Assembler.

H:\casl2>RUN T33

H:\casl2>java RUN T33
COMET�U Emulator -V1.03(2001/04/25)- ( Date : 2002/6/26 )
Illegal Address PR:002D(NOP) Adr:002E
END COMET�U Emulator.
と でてしまうんです
わかりますかねぇ?
0261248NGNG
( ゚д゚)ポカーン
0262デフォルトの名無しさんNGNG
>>249
正解!
0263U-名無しさんNGNG
>>260
( ゚д゚) カポーン

(´-`).。oO(なんで「これであってるはずなんですけど」なんだろ?)
0264デフォルトの名無しさんNGNG
素人質問ですいません、VC++からインラインアセンブラで書かれている
関数(私が書いたものではありません)を使おうと思ったのですが、マルチ
スレッドのプログラムでこれを使用する場合、当然CPUが一つの場合だと、
そのインラインアセンブラ中で使用されているレジスタ等は複数有るわけ
がないのでこの関数が再入可能になるように排他処理を施す必要が出てくる
(スタックしか使ってない普通の関数なら排他不要ですが)のではないかと
思ったのですが、この認識で正しいでしょうか?
0265仕事さぼりNGNG
>>264
スレッド切り替え時に
システムが自動的に
レジスタなどのコンテキストは保存するはずだから、
その必要はないと思います...
0266ザンゲ野郎NGNG
むかぁ〜し昔、68アセンブラいじってた頃。

jsr LABEL

とする所を

lsr LABEL

とタイプしていてなかなかバグが見つからなかったのはヒミツ。
0267仕様書無しさんNGNG
>>264
勉強汁!
キーワード「ディスパッチ  レジスタ  コンテキスト」で
検索汁 (゚Д゚)ゴルァ

マルチスレッドであろうと無かろうと、
マルチタスクだったりするし、
ふつーは割り込みもケアする必要がある。

たしかに >>265 氏の御説のとおり
「システム」か何か(仮)が良しなにケアしてくれるが、
その「システム」がどこまでヤってくれるのかを
理解しておかないと危険。

あと、レジスタを使わないでスタックだけ使えると
思ってるのか (#゚Д゚)ゴルァ!
しかもレジスタの読み書きについて排他処理すると
再入可能になるのか (#゚Д゚)ゴルァ!
CPUが1つしかないと「レジスタ等」も
1つしかないのか (#゚Д゚)ゴルァ!

三度のご飯のお供に Z80 をどうぞ。
0268デフォルトの名無しさんNGNG
勉強が足りないのは>>267も一緒だと感じるのはなぜだろう…
026944xNGNG
初心者なのでどなたか教えてもらえないでしょうか。
拡張子‘asm’はアセンブラのソースファイルですよね。
これを実行ファイルに変換する方法はどうすればよろしいのでしょうか。
どうか、よろしくお願いします。
0270デフォルトの名無しさんNGNG
>>269
MASM

>>268
なんとなく同意。
027144xNGNG
>>270
ありがとうございました。
0272デフォルトの名無しさんNGNG
…
0273デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1024411711/-100
初心者だががんばっているやつがいる応援したくなる。
0274デフォルトの名無しさんNGNG
なんなんですかあなたは
0275デフォルトの名無しさんNGNG
OSをつくろう。
0276デフォルトの名無しさんNGNG
使えるのが作れたら10円やる。
0277267NGNG
>>268
・・・・・(;´Д⊂ ウエーン。ワカンナイヨウ。

お蔭様で配置替え。
0278デフォルトの名無しさんNGNG
アセンブラ News
ttp://headlines.yahoo.co.jp/hl?a=20020706-00001022-mai-bus_all
0279アセンブラは知りません。NGNG
わざとアプリをハングさせてデバッグ画面にし、出てきたアセンブラのコードに適当に知ってる命令を加えて
int aa,bb;

_asm{
push 1
push 1
push 1
push aa
 ret 4
mov eax,dword ptr [ebp-14h]
mov eax,dword ptr [eax]
mov eax,dword ptr [eax]
mov dword ptr [ebp-280h],eax
push 1
}
WinMainの最初のほうに貼り付けたら落ちました。なぜですか?
0280デフォルトの名無しさんNGNG
>>279
push命令はdword値をpushするのに対し、ret n はword値を破棄する
からじゃない?

だから 0x00010001uにreturnしようとして落ちる。
0281デフォルトの名無しさんNGNG
|○ファイル:点数ファイル
宣○レコード:点数レコード(整数型:番号,点数,文字型:名前)
言○整数型:sts,合計
部○手続:レコード入力(ファイル,レコード,状態)
|○手続:データ出力(合計)

|●レコード入力(点数ファイル,点数レコード,sts)
|●合計=0
処■sts=0
理┃合計←合計+点数
部┃データ出力(合計)
|┃レコード入力(点数ファイル,点数レコード,sts)
|■
フローチャート作るソフトはあるけど、擬似言語書けるソフトも作れそう?
0282デフォルトの名無しさんNGNG
いまアセンブラやりはじめた(C++暦2年以上)んだけど、わけわからない記号列を見ると初めてプログラミングはじめたときを思い出してドキドキする。くくく、楽しすぎんぞ。
0283デフォルトの名無しさんNGNG
>>281
ナニソレ
0284デフォルトの名無しさんNGNG
>>281
富士通とか日立とか、汎用機の世界では10年以上前からあるぞそんなの。
結局ソース修正のほうが圧倒的に楽なんで元の木阿弥になるんだが大抵。
0285デフォルトの名無しさんNGNG
>>284
そーなんだぁ〜
>>283
基本情報技術者試験で擬似言語の問題が出てきてるんです、はい。
ま、他の学校の誰に聞いても
「そん何とっても役にたたん!」
とか言われるのがオチなのは気のせいか・・・
0286デフォルトの名無しさんNGNG
だから、なぜこのスレで?
0287デフォルトの名無しさんNGNG
うるせーばか。お前から だから と なぜ をとったら何も残らないくせに。
0288デフォルトの名無しさんNGNG
ポカーン
0289デフォルトの名無しさんNGNG
http://homepage2.nifty.com/nowsmart/nwsa.htm
0290デフォルトの名無しさんNGNG
>>287
、このスレで?
が残ります。
0291デフォルトの名無しさんNGNG
>>290
質問の核心が残りましたね。
0292デフォルトの名無しさんNGNG
z80始めることになりました。チャンチャン
0293デフォルトの名無しさんNGNG
いきなりx86からはじめるより
z80とかから勉強した方が効率はいいですか?
0294デフォルトの名無しさんNGNG
eieio
0295デフォルトの名無しさんNGNG
>>293
Z80は既に遺物だから、86からやった方がいいよ。
大体、試験環境を持ってるの?
PC-8801などの8ビットマシンを持ってるなら別だけど。
0296293NGNG
>>295
そうなんです、それが引っかかっていたんです。
既に環境がないのでz80の勉強といっても本を読むことしか出来ないので・・・
まだ何も手をつけていないので要領がわからなかったのですが
C++の勉強にCの知識が前提になるのと同じようなイメージで捕らえていたのですが
関係ないんですね?
0297デフォルトの名無しさんNGNG
●C++の勉強にCの知識はあまり必要ない
●いきなり 386/486から初めてOK 86の知識も不要
●Z80は結構windows上のシュミレータも豊富

最初はコンパイラの出すコードを眺めるのが一番だよ
後はインラインアセンブラの使い易いコンパイラで少しづつ使ってみる
 お勧めは Delphiパーソナル 無料だけどインラインアセンブラは
 使えるし、コンパイル&goも早いから勉強には楽

0298デフォルトの名無しさんNGNG
DelphiPersonalってインラインアセンブラ使えないだろ?
tasm.exeとか付いてこないし
0299デフォルトの名無しさんNGNG
>>298 使えるよ?

tasmを使わなくても1パスでインラインアセンブラが使えるから便利だという事でしょ
もちろんtasmに比べたらアセンブラとしては貧弱だけど
今時アセンブラだけで全部組むなんて無意味なんだし

ただ、Cコンパイラのように、アセンブル、リンクを使う経験値は稼げないね
0300293NGNG
Visual C++6.0のインラインアセンブラはどうでしょう?
使いやすい部類に入るのでしょうか?
0301デフォルトの名無しさんNGNG
>>300
インラインで使う用途にしては十分だけど、それ以上には向かないと思うよ。

誰かが書いてるかもしれんが、Cコンパイラの吐くアセンブリコードを見ると
勉強になるよ。最適化オプションの効果を見たりするのも意外に楽しい。
0302デフォルトの名無しさんNGNG
普通、DWORD値の1 を右へ1シフトすると 0 になりますが、
IntelCPUのメモリ上の 01 00 00 00 を 00 80 00 00 にする命令は
ありませんか?

bswap で挟むのは無駄な気がするのです。
0303デフォルトの名無しさんNGNG
>>302 回転を使えば?
でも Cで x:=(x<<31) | (( unsigned ) x >>1);
とやっても、相手がメモリなら殆ど速度変わらないよ
0304デフォルトの名無しさんNGNG
>>303
302はlittle endianのマシンで
byte[4] = { 01, 00, 00, 00 }; を
byte[4] = { 00, 80, 00, 00 };
にしたいんだからそれだとダメ。

>>302
> bswap で挟むのは無駄な気がするのです。

気がするだけだと思う
0305デフォルトの名無しさんNGNG
nasmをゲットしようと思ったのですが、リンクが切れているのかホームページにいけません。どなたか、リンクの通っているURL教えてください。
0306デフォルトの名無しさんNGNG
>>302
BYTE単位で SHR + RCR * 3 とか…。
素直にBSWAP使った方が速そうだけど。

>>305
kernel.org
ttp://www.kernel.org/pub/software/devel/nasm/
0307デフォルトの名無しさんNGNG
>>306
getできました。ありがとうございます。
0308デフォルトの名無しさんNGNG
cygwinでnasmをビルドする方法教えて。。。
0309デフォルトの名無しさんNGNG
アセンブラのソースとちょっと見たらC言語で書かれていたところがあった。アセンブラって高級言語で書くものなのか、、、
0310デフォルトの名無しさんNGNG
fd
0311デフォルトの名無しさんNGNG
>>309
字句解析なんてやってらんねーだろうし、
命令選択に幅がある場合の最適化なんてことをやりだしたら
カナーリの高級言語じゃないと厳しいのでは?
0312303NGNG
>>304 あ!・・・・ごめん

なら x = x<<15 だ
0313デフォルトの名無しさんNGNG
(´-`).。oO( >>312 ツッコムべきなのだろうか? そりゃこの例での結果は同じになるけど…。)
0314304NGNG
シフト数1限定だけど無理矢理書いてみた。未検証。

sub al, al
rcr byte ptr [mem+0], 1
rcr byte ptr [mem+1], 1
rcr byte ptr [mem+2], 1
rcr byte ptr [mem+3], 1
;rcr al, 1
;or byte ptr [mem+0], al
;この2行を有効にするとローテートになる

逆向きはrcrの代わりにadcを使おう。
でもbswapのほうがいいと思うよ。
シフト数が2以上なら迷わずbswap。

以下蛇足。
元データが何なのか知らないけど(グラフィックか?)
計算中はそのアーキテクチャ上で扱いやすいデータ形式にしておくのが
定石じゃないかな。
0315302NGNG
レスありがとうございます。
そうです。 グラフィックです。
1bppの画像をdword単位で操作したかったのです。

bswap使います。
0316303NGNG
ああ、それをやりたかったんだ。やっと判った。
 モノクロビットマップデータを全体に1ピクセル動かしたい
 バイト単位に
  m[0]    m[1]    m[2]    m[3]
76543210 76543210 76543210 76543210
C7654321 07654321 07654321 07654321 ->0
という事だけど、 高速にする為にDWORD単位でやる方法はないかという事だね?


となると、メモリの入出力速度に制限されるから、BSWAPが遅いといってもそれほど
問題にならないと思う。

どうしてもというなら
33333333 22222222 11111111 00000000
23333333 12222222 01111111 C0000000 ->3
for...
{dt:=m[i];
 m[i] = ((dt >> 1) & 0x7f7f7f7f) | ( (dt<<15) & (0x808080)) | cf
 cf:=(dt >>17) & 0x80;
}

0317デフォルトの名無しさんNGNG
>>316
おぉ。それ、SSE2で128bit単位でやると速そうだね。
0318デフォルトの名無しさんNGNG
教えてください
実は「はじめて読むマシン語」という本を勢いで勝ってしまい
全て読み終えて理解も出来たのですが
当然のことですが読み進めていくうちにとても古いアーキテクチャーの物だと気がつきました
そこで次に「はじめて読む486」という本を購入しようと思っているのですが
その本の冒頭に「8086などを理解していることを前提に書かれています」という内容の記述があります
「はじめて読む486」を読んだ方がいましたら教えてください
「はじめて読むマシン語(Z80)」から「はじめて読む486」に進むのは無謀でしょうか?
0319manko_chinko ◆c2rpKRNM NGNG
>>318
はじめて読む8086をかってみれば?
良書だし安い
0320318NGNG
>>319
「はじめて読む8086」は大変評判良いですね
実はそれを買おうと思って間違えたんです・・・
本のタイトルを正確に記憶しないで「はじめて読む・・・」という部分と
マシン語の本であるというあやふやな記憶を組み合わせて購入してしまいました
その書店に「はじめて読む8086」が置いてあれば気が付いたんですけど
あいにく「はじめて読むシリーズ」はマシン語、アセンブラ、486、MASMと8086だけが見当たりませんでした・・・
読み始めてすぐに間違いに気が付いたんですがせっかくだから読みきってしまいました、時間の無駄だったかな・・・
1600円くらいケチケチしないで買い直すとしますか・・・
0321はじめて読むマシン語NGNG
無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄ァッ!!!








( ・д・)…
0322デフォルトの名無しさんNGNG
COFFバイナリエディッター
アタ━━━(゚∀゚)━━━!!
0323ろうひ男爵NGNG
>>318
から読んだ方がよいですよ。
はじめて読む486は、ユーザーレベルアプリケーション以上のモノ
保護機能とか割り込みとかの本なので。
初めて読む8086を読んで、
拡張されたレジスタを理解(16bitから32bitへ拡張)+拡張された命令を理解
すれば、オーケーです。
windowsなら、特に割り込みの事を考える必要はないし、
exe386やrun386でも、システム側がやってくれるしね

0324デフォルトの名無しさんNGNG
ターボアッセンブラーって今お店で売っているんでしょうか?
0325デフォルトの名無しさんNGNG
TASMを日本で正規に入手する方法は
http://store.borland.co.jp/bcsuite/index.html

昔 TASMを単体で買った時より廉いような気がする・・・

高くて買えなかったCodeGuardや あんなに高かった PowerPack もついてるし
0326デフォルトの名無しさんNGNG
16bit 86アセンブラなんすけど
mov ax, [bp+si]
      ↑
こういう使い方のレジスタの組み合わせってどのくらいありますか
0327デフォルトの名無しさんNGNG
コマンドプロンプトでDUMPとかが出来ない。
DEBUGは出来る。そういうもんなんでしょうかね?
0328デフォルトの名無しさんNGNG
>>326
386でいろいろ拡張された分を無視するとそんなにない
0329デフォルトの名無しさんNGNG
>>324
アセンブラだけならC++ Builderに付属してる(w

0330デフォルトの名無しさんNGNG
>>326
16ビットレジスタだと
[offs]
[BX+offs]
[SI+offs]
[DI+offs]
[BX+SI+offs]
[BX+DI+offs]
SS:[BP+offs]
SS:[BP+SI+offs]
SS:[BP+DI+offs]

32ビットレジスタだと
[reg+offs]
SS:[EBP+offs]
[n*reg+reg+ofs]
(reg=EAX, EBX, ECX, EDX, ESI, EDI, なし)
(n=1, 2, 4, 8)
0331326NGNG
>>330
ありがとうございます(^ー^)
だいぶ助かりました。
0332デフォルトの名無しさんNGNG
>>330
ESP も使える。
0333デフォルトの名無しさんNGNG
最近はC言語のほうがアセンブラよりはやいと聞くが、本当か?
0334デフォルトの名無しさんNGNG
>>333
気合の入ったCコンパイラが吐くコードのほうが、素人のアセンブリソースより
すごいことはあるんじゃない?
0335デフォルトの名無しさんNGNG
C言語で書いてあとはコンパイラに任せたほうが
移植するときには有利なんじゃない?
03360ページNGNG
>>334
たしかにそう。GCCで最適化レベルを最高にして出力された
アセンブラコードを読むと、かなり気合が入っている。
#VCは、最適化レベル上げるとバグッたコードをかなり吐くのでそこが不安。

Cコンパイラのコンパイルオプション(PIII用のコードを吐くようにするとか、最適化レベルとか)を適切に設定すれば、かなり速度は上がるはず。

それでも、物足りなければネックになっているモジュールだけハンドアセンブルで最適化。
0337デフォルトの名無しさんNGNG
>>336
ハンドアセンブル…直でマシン語書くのか。
せめてアセンブラぐらい使えよ。
0338デフォルトの名無しさんNGNG
>>336
gccの最適化はCWにも劣るレベル。
全然気合いなんか入っちゃいないよ。
VCも5とかそれ以前はバグコードを吐いたけど、6はマトモ。
7(.NET)はちょっと物足りない感じだけど、やっぱりすごい。
0339デフォルトの名無しさんNGNG
チンコーはぁチンコー
0340デフォルトの名無しさんNGNG
mips, arm, sh
皆の好みはどれ?
0341デフォルトの名無しさんNGNG
俺はarmっす
0342逝って良しの1NGNG
ARMだな。
sh設計した奴は素人。
0343デフォルトの名無しさんNGNG
漏れも ARM がイイっす。
0344デフォルトの名無しさんNGNG
アセンブラなんか使うなよおめーら
0345takebe youta(正規表現NGNG
ハンド・アッセンブルしろってこと?
0346デフォルトの名無しさんNGNG
アフォか。
インラインアセンブラしまくって最適化の邪魔するんだよ
きまってんだろまったく。
0347takebe youta(正規表現NGNG
>>346
> きまってんだろまったく。
それは、誰が決めたんですか?
0348デフォルトの名無しさんNGNG
それは私です
0349デフォルトの名無しさんNGNG
It's mine. それは地雷です。
0350デフォルトの名無しさんNGNG
地雷だったらaが要る
0351デフォルトの名無しさんNGNG
>>350
むむっ鋭い突っ込みお見事。
0352デフォルトの名無しさんNGNG
MMX命令について詳しく書かれたサイトありませんか?

現在某参考書にちょっと載ってた
movq, punpcklbw, punpckhbw, paddwなど数種類の命令しか分かりません
0353デフォルトの名無しさんNGNG
インテル・アーキテクチャ・ソフトウェア・ディベロッパーズ・マニュアル 中巻:命令セット・リファレンス

がオススメ
0354デフォルトの名無しさんNGNG
>>353
御親切にどうもです
0355デフォルトの名無しさんNGNG
AMDのx86-64では、8個の汎用レジスタが追加されるらしいな。
なんかx86らしくないと思ったのは漏れだけ?
0356デフォルトの名無しさんNGNG
>>355
EEX,EFX,…,ELXだったら、萌える。
0357デフォルトの名無しさんNGNG
and eex, fffffffffffffff0h
add eex, egx
adc efx, ehx        ; 128bit加算 キター
0358デフォルトの名無しさんNGNG
x86-64って64ビット即値はmov命令以外使えないんだよね。
0359デフォルトの名無しさんNGNG
ぢゃこお?
mov eax, fffffffffffffff0h
and eex, eax
ふーん。めんどうなのね。
オペコードの節約になるからRISC的には正しいのかも。
0360デフォルトの名無しさんNGNG
mod/rm のbitじゃ表現できないのは、どーするんだろ、
まさか、プレフィクス?
0361デフォルトの名無しさんNGNG
x86-64って64bitモードがあんのかね?
0362デフォルトの名無しさんNGNG
64bitモード(アドレスと拡張レジスタが64bit)で、R8-R15だって→x86-64.org
苗苗〜
0363デフォルトの名無しさんNGNG
ええとつまりIPとかSPとかが64bitになるわけではない、と?
そりゃつまらんなあ
0364デフォルトの名無しさんNGNG
アドレスが64bitになるって言ってるじゃん
0365デフォルトの名無しさんNGNG
ようやっと見たよ x86-64.org
完全64bitモードあるじゃん。モエモエ。

よくわからなかったのが、従来の32bitアプリが
64bitレジスタにアクセスできるのか、ということ。
ちょっとだけおいしいかもしれん。ちょっとだけ。
0366デフォルトの名無しさんNGNG
過去資産を切り捨てているだけ、IA-64のほうがかなり有利なんじゃないの?
レジスタが馬鹿ほどあって面白そうだし。
0367デフォルトの名無しさんNGNG
>>365
カーネルモードでないと64bitモードに移れないから、
従来の32bitアプリじゃ64bitの機能は使えないでしょう。
0368デフォルトの名無しさんNGNG
>>367
32bitプロセス(?)が、ヘンテコリンなprefix付けて64bitレジスタに
アクセスできるのかなあ、と。
0369デフォルトの名無しさんNGNG
>>368
その64bitレジスタにアクセスするのに必要なREXプレフィックスは、
32bitモードでは別の命令(INC,DEC)に割り当てられているので、無理。
0370デフォルトの名無しさんNGNG
>>369
そうなのか、残念...
0371デフォルトの名無しさんNGNG
要するに、x86-64は

al, ah
↓
ax
↓
eax
↓
rax
↓
(゚д゚)ウマー

な訳だよ、諸君!
どう思うよ?
0372デフォルトの名無しさんNGNG
Hammerって、やっぱりリセット直後は16bit Real mode なの?
0373デフォルトの名無しさんNGNG
そうじゃないと互換プロセッサと名乗れないじゃん
既存のOS動かないし。
0374デフォルトの名無しさんNGNG
EAXのEは、ExtendedのEかと勝手に思ってたんだが、
RAXのRって、何よ?

Rabi-en-RoseのRかな?
0375デフォルトの名無しさんNGNG
うさだage
0376デフォルトの名無しさんNGNG
>>374
romance
0377デフォルトの名無しさんNGNG
MS-DOSはシステムコールを実行する時も、リアルモード
でなくてはいけないのでしょうか?またMS-DOSはプロテクト
モードで実行させることは出来ないのでしょうか。
0378デフォルトの名無しさんNGNG
仮想8086モードというのがあったような気が・・・。

詳しくは以下参考
ttp://www.intel.co.jp/jp/developer/design/pentium4/manuals/index.htm
0379デフォルトの名無しさんNGNG
>>378
すみません勉強不足でした。おっしゃる通り、仮想8086モード
に移行出来れば、MS-DOSの上で動く16ビットアプリケーションも
動かせる様です。しかしMS-DOSのシステムコールが、なぜリアル
モードで動くのかが分りません。システムコールを実行する為には
メモリの保護などを行わなければ危険だと思うのですが...
0380378NGNG
>>379
作った当時は16bitCPUしかなかったし、
メモリ保護とかそんな意識がCPU自体になかっただけでは?

また、参考なるかどうかはわからんけど、一応。
ttp://www.atmarkit.co.jp/fsys/pcencyclopedia/001jp_pc_history01/jp_pc_hist02.html
0381デフォルトの名無しさんNGNG
 
 × CPU自体
 ○ インテル
 
0382デフォルトの名無しさんNGNG
僕の買った本にはCPUは「クプと呼ばれている」と書いてあったのわけだが
皆さん「クプ」と呼んでいるのですか?
「シーピーユー」と呼んでいるのは世界で僕だけですか?
0383デフォルトの名無しさんNGNG
>>382
クプにきまってんじゃん
0384デフォルトの名無しさんNGNG
クプだな。
0385デフォルトの名無しさんNGNG
マジで?
0386デフォルトの名無しさんNGNG
クプ...でいいんだよな? 一瞬あせった。
0387378NGNG
>>381
訂正ありがと。

後、俺もクプだと思うよ。
流れからいくと。
0388デフォルトの名無しさんNGNG
クプだったのか・・・
0389デフォルトの名無しさんNGNG
クプはでふぉでしょ。
0390デフォルトの名無しさんNGNG
俺のはムプだ
0391manko_chinko ◆c2rpKRNM NGNG
うちの家族では”まんこ”って呼んでます
0392デフォルトの名無しさんNGNG
クピュじゃないの?
0393デフォルトの名無しさんNGNG
>>381
iAPX432
0394デフォルトの名無しさんNGNG
CPUをシーピーユーと読む香具師は素人だけだろ。
SCSIとかもエスシーエスアイとか言ってそうだな(藁
0395デフォルトの名無しさんNGNG
プッ
0396デフォルトの名無しさんNGNG
TCP/PIとかもティーシーピーアイピーとか言ってんだぜ。
トクプピなのにな。
0397デフォルトの名無しさんNGNG
SCSIは当然「すくし」だ。
0398デフォルトの名無しさんNGNG
>>396 プ
0399デフォルトの名無しさんNGNG
>>396
トクッピ だろ。
0400デフォルトの名無しさんNGNG
少なくとも2chでは、CPU = クピュだろ。
0401デフォルトの名無しさんNGNG
EAXってなんて読むんですか?
0402デフォルトの名無しさんNGNG
>>401
いーえーえっくす
0403デフォルトの名無しさんNGNG
http://www2.jcss.ne.jp/~yohko20x/computer/hardware/ie50/cpu/32bit.html
http://www.hct.zaq.ne.jp/pcgate/pc/dictionary/C/CPU.htm
http://computers.yahoo.co.jp/dict/semicon/mpu/221.html
http://www.ne.jp/asahi/futohen/sankaku/h078.htm
http://www.hi-net.ne.jp/~iarum/hachidata/word.html
どれがお好み?
0404デフォルトの名無しさんNGNG
やぁっくす
0405デフォルトの名無しさんNGNG
>>396
TCP/IPだからトクピプだ。
0406デフォルトの名無しさんNGNG
ププク
0407デフォルトの名無しさんNGNG
俺のビデオカードのグプはGTS
0408 NGNG
ガッチャンだね。
0409デフォルトの名無しさんNGNG
ttp://www.geocities.co.jp/SweetHome/4030/words/01.html
ttp://23ku.net/~realdoll/MyLife/PersonalComputer.htm
まだイスドゥンなの?(クプ
0410デフォルトの名無しさんNGNG
へぇ〜いろんな読み方があったんだね。
自分の場合TCP/IPはトクピップで話さないと
会話が成り立ちません。
0411デフォルトの名無しさんNGNG
もうこのネタ飽きた。
0412素朴な疑問NGNG
Pentium4のTLBの記述で 4K,2Mまたは4Mの n way set associative って
書いてあるんですけど、これって要するに TLB は 4K,2M/4M のPTEが
一つのTLBでシェアされるっていう意味なのでしょうか?
AthlonとかはTLBは 2つあるみたいですよね。
0413デフォルトの名無しさんNGNG
>>412
そういう意味なんじゃない?
0414デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley-Bay/7981/misc.html

↑にある6502(?)のソースからnesファイルを作りたいのですがどうすればできるのですか?
0415デフォルトの名無しさんNGNG
>>414
スーファミか。65816カスタムだね。
0416デフォルトの名無しさんNGNG
>>415
ファミコンだと思うのですが…
どうすればnesファイルを作ることができるのでしょうか?
0417デフォルトの名無しさんNGNG
nesファイルって、ロム?
0418デフォルトの名無しさんNGNG
>>416
65816のアセンブラはあるの?
0419デフォルトの名無しさんNGNG
SFCの怪しいページ見つけたよ。
http://user.parknet.co.jp/wanisan/whp_lib/wsfcp.htm
0420デフォルトの名無しさんNGNG
>>417
たぶんロムだと思います。
>>418
ないです(;´Д`) 検索しても意味不明で…
0421デフォルトの名無しさんNGNG
マリオだな。
これはアセルンブルできないよ。
0422デフォルトの名無しさんNGNG
x86-64とItaniumはどっちが美しい?
0423デフォルトの名無しさんNGNG
Itanium
0424デフォルトの名無しさんNGNG
>>421
えっ、そうなんですか?でもゲーム製作技術板のスレではできてたみたいですけど…
0425デフォルトの名無しさんNGNG
>>424
じゃあ、そっちで訊いたらええんちゃうん?
0426デフォルトの名無しさんNGNG
>422
廃人宣言みたいな質問はやめろ(藁
0427デフォルトの名無しさんNGNG
>>425
わかりました。ありがとうございました。
0428デフォルトの名無しさんNGNG
アセンブラのソースとちょっと見たらC言語で書かれていたところがあった。アセンブラって高級言語で書くものなのか、、、
0429デフォルトの名無しさんNGNG
(´-`).。oO(Cってどこらへんがどう高級なんだろ・・・)
0430デフォルトの名無しさんNGNG
>>428 うちは 最近アセンブラ書くのはDelphiでやってる。
文字列の扱いが楽だし、IDEモドキに組み込むのも楽だし
0431デフォルトの名無しさんNGNG
そう言えば昔、構造化アセンブラなんてのも有ったな。
0432デフォルトの名無しさんNGNG
age
0433デフォルトの名無しさんNGNG
「初めて読む486」って本で、

int abc(int x,long y);

ってCの関数をアセンブラで書くと
_abc proc near
push bp
mov bp,sp
mov ax,[bp+4]; 引数x の取り出し
mov ebx,[bp+6]; 引数y の取り出し
mov ax,dx; 戻り値のセット
pop bp; 終了
ret
_abc endp

となると書いてありました。C関数の引数は右から積むんですよね?
なんで、[bp+4]が引数Xになるんでしょうか・・・
long も int も4byte ですよね?
素人丸出しでごめんなさい。だれか教えてください。。。
0434 NGNG
>>433
スタックの絵を描いてみればわかる。
その例ではintは2byteのようだな。
0435デフォルトの名無しさんNGNG
つか、スタックを bp+n でアクセスしてるの見て、
スタックはアドレスの大きいほうから小さい方に
伸びてるのわかってほしい。
0436デフォルトの名無しさんNGNG
>>435
>>434
えーと、y,x の順で積んでから、
bp を積んでいるんですよね?
てことは、bp のサイズは4byte なのでしょうか?
それなら納得できます
0437 NGNG
>>436
その関数からどうやって戻る?
0438デフォルトの名無しさんNGNG
>>437
retがそうなのではないのですか?
0439 NGNG
>>438
どこに戻る?
0440デフォルトの名無しさんNGNG
あー、IPレジスタってのを積むらしいですね
IPレジスタ+BP だからXの位置まで4バイトなんだ。

合ってますか?
0441デフォルトの名無しさんNGNG
>>439
つまりret でIPレジスタの分をPOPして
もどるってことですか!
なるほど!!
ありがとうございました。
0442デフォルトの名無しさんNGNG
みんなアセンブラなんかやってるの
変態じゃん
0443 NGNG
>>442
つまらんことをわざわざ書くお前が変態
0444デフォルトの名無しさんNGNG
今一番使われているのはどれですか?
Z80っていうことは,ないですよね・・・
0445デフォルトの名無しさんNGNG
Z80互換のワンチップとかって、相当数出回ってそう。
0446デフォルトの名無しさんNGNG
Z80系はゲームボーイに(省略)
0447デフォルトの名無しさんNGNG
>>442
アセンブラだけなわけないじゃん。
効率悪すぎだから併用よ♪
0448デフォルトの名無しさんNGNG
アセンブラだけやってたら確かにある意味変態かもな(w
0449デフォルトの名無しさんNGNG
Win32APIを全部記憶してる奴も変態だな
0450デフォルトの名無しさんNGNG
変態って言うなよ(藁
0451変態NGNG
仕事柄アセンブラしか使わしてもらったことが無い...
0452デフォルトの名無しさんNGNG
アセンブラったって用途はピンきりだ。
0453デフォルトの名無しさんNGNG
アセンブラしかなかったら、アセンブラだけ使うしかない罠ヽ(`Д´)ノウァァァァン
自社開発フルカスタムCPUは、マジで泣きそうになるよ。。
0454プログラマ・ペレNGNG
イヤならさっさと転職しる。
私ならそう(略)
0455453NGNG
その仕事は最近香港の子会社へ逝きました(w
もう2度とやりたくないな。まともなデバッガすらなかったし・・・頼りはメモリ
やレジスタ表示用7セグLEDだけ。メモリ参照時のアドレス打ち込みは、トグル
スイッチでパチパチ(;´Д`)

こんなのは三国人にやらせときゃいいんだ(w


今はSH-3+Cで快適開発〜。アセンブラもたまに使うけどね。MMUの
制御とかブート部分でちょこっとだけ。
0456デフォルトの名無しさんNGNG
>>455
MMUの制御って、隣家に任せればいいんだと思ってた...
0457デフォルトの名無しさんNGNG
・ ヘ\sEv・・;k・GR)Yアエ^・・pヌzg[サ」劑^賤ョWpョロ ゙ユjオメJ+r・�\ >E8W。B〈ンG・概・
戉ホ6\J%ゥJ^マ・鰰5・紛ォUソ/ン��鄂ラ=_9x,オp゚竡・s峨wOマJ%ニ・肉|5畢\8・羚ヌ・t、イ)
ゥノd�靼莚・・=u^-フ・'8・c・Z・K・&悌?n攪椢O'L、邁ケャdmFGフ%サ,ヲ・シ^三Nフ;コ・臚シlマmc・S仮・ノノアIyO‥rjrb�ト莚夏トエァ*ナァヌA・ツZ&・
Y・dイ\.゚>N$m\テ絳ナ苹ぎ嵐�、|k訪゙W・ォ議乳暇iWェ�k u択B`・\D�Θ・nVタコU@9トキ・]。゚「wキマbオロtkD・)圦5エ・、愍'#kI
良・ミスム:ケoocmWWヨクDサ・uGOナ・ャ蟯eヌ・c1ソ�I・#ヤ「・チRキウ76:Pナァ・Rャエ/ツ梦nk3Bコ・
ウネナLソ+~$帽・・メUowF纓オ$トp0ワnョュロ6_aイ=侠ォュ已瓜タoミ・ネoメ. %・3「DぼTヲG・ョ>亨ャ」S・{
r@ー\・歳ユ�゚ウヨサ#TsHCヘgノ「.M5コケ|キヘNlーbIニ&W゚ミ進z、癬\ヤI。B,セ巛抛[淺賄go
s・・ヒk]lアッJ0攤2雜C腑ス・閘ィ・件・ヤ讒・コCeHyYー芻ヌ・w剥gヨ嘱ヒ 井セ・ィテ


これってなんていう機械語ですか?
0458デフォルトの名無しさんNGNG
バイトコードって誰が発明したの?
0459デフォルトの名無しさんNGNG
>>458
たしか1970年代あたりにSmalltalkの出力がバイトコードでやられている
というのをどっかの論文か何かで読んだ覚えがある。そこにははっきり
した起源は不明って書かれていたような気がした。

あやふやですまんです。
0460 NGNG
>>458
詳しい起源は知らんが、PascalはP-CODEだったし、
Bもスタックマシンの中間コードをinterpretしてたらしい。
0461デフォルトの名無しさんNGNG
>>459-460
サンクス。
0462459NGNG
>>458
まだみてるかわからないけど、前に書き込んだ情報のソースがみつかったので、
参考までに(やっぱ前の書き込み微妙にまちがってるし)。
http://www.brl.ntt.co.jp/ooc/spa98/proceedings/020_yamazaki.html
0463デフォルトの名無しさんNGNG
こんな感じのコードが本に乗っていたのだが、

/* 32bit segment func */
void __far func(ushort sel,ulong num);

/* メイン関数は16bit セグメント上にあるものとする */
void main(){
void (__far *pFunc)();

ushort sel = AllocateSel();/*セレクタ値の取得*/

/* これがわからん */
pFunc = (void (__far*)())(((ulong)sel<<16 + (ushort)func);

RealToProto(); // real mode to protect mode
aFunc(a,b); // 32ビットセグメント上の関数を呼ぶ。
ProtoToReal();// protect mode to real mode
}

MSDOSのC言語処理系だと、__far 属性の関数は
従来どおりにセグメントアドレスとオフセットアドレスで指定
するから、それに対応するため、16bit セグメントから
32bit セグメントのコードをcall するための
テクニックなんだそうだが、よくわかんないです。

とくにこの部分。

pFunc = (void (__far*)())(((ulong)sel<<16 + (ushort)func);

関数ポインタに「セレクタ値:オフセットアドレス」
をセットしておくための処理らしいのだが、よくわからんです。

どなたか、ご教授ください。お願いします。
0464デフォルトの名無しさんNGNG
MS-DOSだと
mov ah,09
mov dx,109
int 21
int 20
db '(・∀・)やん♪', 0a, 0d, '$'
これでコンソールに文字列を吐けますが
このmov ah,09ってファンクションコール(システムコール?)ですよね?
これの一覧が載ってるWebサイトありますか?
あとLinuxにもこういう仕組みありますか?
もしあるなら是非書籍かサイトを教えてください。
おながいしますm(_ _)m
0465デフォルトの名無しさんNGNG
>>464
> あとLinuxにもこういう仕組みありますか?

ある。int 90hだったと思う。
0466デフォルトの名無しさんNGNG
>>464
Ralf Brown's Interrupt List
ttp://www.vector.co.jp/soft/data/prog/se015018.html
0467デフォルトの名無しさんNGNG
Linux用
ttp://www.linuxassembly.org/
0468名無しさん ◆glaITM9U NGNG
CASLとアセンブラの違いって何・・?
0469デフォルトの名無しさんNGNG
CASLには浪漫が無い。
0470名無しさん ◆glaITM9U NGNG
浪漫ってどういうこと?
0471デフォルトの名無しさんNGNG
CASL=脳内アセンブラ
0472名無しさん ◆glaITM9U NGNG
脳内アセンブラ??
っていうか、CASLが開発で使われたりすることはあるの?
初心質問スマソ
0473デフォルトの名無しさんNGNG
>>472
開発以前に今時1語16bit×64KWの計算機なんて誰も作らんと思われ。
0474デフォルトの名無しさんNGNG
>>473
組み込み環境ならあるいは……
いや、その場合は 8bit に行くのかもしれないけど
0475デフォルトの名無しさんNGNG
そういや、1アドレスには8bitというのは歴史的な経緯か何か
あるのだろうか?
0476デフォルトの名無しさんNGNG
じゃあ一体CASLの意味ってなんなの?
情報処理試験専用で、実社会では役立つこと1つもなしのプログラム言語?
0477デフォルトの名無しさんNGNG
>>476 そう。 そんなものさ。

というか、CASL程度だと 普通に組み込みの仕事してたら 事前に何も知らなくても
使えるから、フルイとして適当だという事。

だから、わざわざCASLを勉強しなさいって意味ではないんだよ
0478デフォルトの名無しさんNGNG
>>463
つーか、そのまえに質問の方法を勉強すべきでしょ。どの点がわからない
のか、まったくもってわからん。よくわからんです、とは具体的に何がわか
らんの?

まぁ、スレ違いの質問のような気もするけどね。


0479デフォルトの名無しさんNGNG
SHR AX,2
って8086ではダメなんや。
フーンだ!!
0480デフォルトの名無しさんNGNG
>>479
MOV CL,2
SHR AX,CL
0481デフォルトの名無しさんNGNG
>>479
引っこ抜いてV30に挿し換えれば使えるようになるよ!
0482デフォルトの名無しさんNGNG
eor a,a と
mov a,0 と
どっちが小さいのでしょう?
前者は1バイト、後者は2バイトだと思うのですが・・。
あと、どっちが早いのでしょう?
0483デフォルトの名無しさんNGNG
後者は6バイト
0484manko_chinko ◆c2rpKRNM NGNG
xorのほうが使ってるひと多いから
xorだと思う
0485デフォルトの名無しさんNGNG
aを使うという事は Z80 ?
0486デフォルトの名無しさんNGNG
>>483え、そうですか?
mov aで2バイト、0が4バイト(32bitCPUだから)なのですか?
>>484私もxorのほうが小さいと思っています。
>>485雑誌等でよくみる表現に合わせているつもりです。
0487デフォルトの名無しさんNGNG
ビットならNOT
レジスターならXORではないの?
0488デフォルトの名無しさんNGNG
>>480
どうも、
CXを使用している場合はつらい!
186ならOKなのにね!
x86の宿命なのかな!!
0489デフォルトの名無しさんNGNG
>>478
俺は一応意味はわかるけどね..たぶん,>>463は初めて読む486を読んでるんだろう
答えを言えばプロテクトモードではセレクタ値を使うから V86で
関数のアドレスを selector(16bit):offset(16bit) に設定しておいて
これを call するとき selector:offset でうまく設定したセレクタ値の
セグメントとオフセットの組が利用されるんだろうと..

でも, 厳密には 16bit 用にコンパイルした x86 コードをプロテクトモードで
どうなるか解釈する必要があるから -S で出力したリアルアセンブラコードを intel の
コード表でデコードしなきゃならない。
そこまでして見直すのは面倒だし、勘違いしてたら赤面なんで書かなかった(w

あの説明だと AllocateSel() がまず不明だ..
セレクタ値用のメモリを gdt あたりに割り当てるっつーことなんだけど
本読んでないとわからないわな.. まぁ>>463 はてきとーにがんばってくれ..
0490デフォルトの名無しさんNGNG
今更答えても遅いです
0491463NGNG
>>489
あー、すいません。
初めて読む486を読んだって
はじめから書いておけばよかった。
説明もまずかったし。。
あとはテキトーにがんばります。
0492489NGNG
>>491
ども。本当は俺もはっきりわかっているか不明なので
教わりたかったんだよね...。

本の156pのRealToProto()関数ではCSにセレクタ値0008Hをロードしてるでしょ。
それで153pのSetUpGDT()関数では0008HのディスクリプタをSmallSeg
(16bitセグメント)にしている。(ここがミソ)
それで16bitセグメントのプロテクトモードで call far を呼ぶと 16bit だから
フツーに segment:offset コールでありながら(スタックにも戻りアドレスを
16bitで積む) segment だけがセレクタ値とゆー妙な状態で呼び出せるらしい...。
だから 32bit セグメントを呼ぶときは (sel << 16) + offset(16bit限定) に
なるということで...。

俺はこんな風に解釈してるんだけど、間違ってるかもしれない...。
間違ってたら非常にマズーだね(w
ツッコミ歓迎ッス...
0493489NGNG
> 32bit セグメントを呼ぶときは (sel << 16) + offset(16bit限定) に

32bitセグメント限定ってわけではないっすね...
0494デフォルトの名無しさんNGNG
>>486
Z80って32ビットCPUだっけ?
つーか雑誌とかって何?
アセンブラはCPUによってまったくニーモニックが違うことくらい理解してる?
0495デフォルトの名無しさんNGNG
>>494
> Z80って32ビットCPUだっけ?
8ビットだって。

往年の名 CPU で、組み込み分野などで広く使われたほか、パソコン MSX や
NEC の PC-88 シリーズ、ゲーム機セガ・マスターシステムなどで使われた。
確かゲームボーイも Z80 互換じゃなかったかな。
0496デフォルトの名無しさんNGNG
>>495
わーってるって。486のアフォに皮肉で言ってるだけなんだから
0497デフォルトの名無しさんNGNG
486です。
ごめんなさい。。
今手元に「はじめて読むマシン語」という本がありましてそこに
「現在、多くのパーソナル・コンピュータはその心臓部にz-80という8ビットの
CPUを使っています」と確り書いてあります・・
mov a,0が6byteとおっしゃるのはどういう計算に基づいているのか、
わからないあまり血迷って適当なことを書きました。
aを使っているのもこの本の影響です(雑誌ではありませんでした・・)
ニーモニックについては、
本や雑誌によって表記が結構違うので
(たとえばレジスタは私の手元にある本ではA,B,・・・ですが
「日経ソフトウェア」という雑誌にはeax,edx等になっています)
環境によって全然書き方が違うんだなあとは思っていたのですが
CPUによってニーモニックが違う、という明確な認識は持っていませんでした。。
0498デフォルトの名無しさんNGNG
はじめて読む>>486
0499デフォルトの名無しさんNGNG
>>497
> CPUによってニーモニックが違う、という明確な認識は持っていませんでした。。
それは、何か重要なことをすっとばして勉強してる気がする。先に進む前に、
ヘネシー&パターソンの「コンピュータの構成と設計」とか読んでみた方が
良いかも。
0500デフォルトの名無しさんNGNG
>>497
CPUによって命令が違う、そして命令の名前(ニーモニック)が違う。
0501デフォルトの名無しさんNGNG
>>497
奥付の発行年をよく見ようね。
本に書いてある「現在」はその頃の事だから。
0502デフォルトの名無しさんNGNG
>>497
「はじめて読むマシン語」は「初めて読む8086」という題名でリメイクされてます
題名が違うので別の本だと思うかもしれませんが内容を8086に移行したようなもんです
0503デフォルトの名無しさんNGNG
497です
>>498??
>>499定本みたいですね。読んでみます。。でも高いですね・・。
ブックオフとかにもなさそうですし。
コンピュータ関係の古本を扱う本屋ってないのでしょうか・・・
見つかるまで定価で買います。
>>500 CPUによって命令の内容がそんなに違うものなのですか。
CPUが違っても一番小さい単位の命令は同じような内容なのだと思っていました。
>>501 問題はz-80が8bitということだと思ったので引用しました。
今のパソコンは32が主流なんですよね。
>>502 「はじめて読むマシン語」を購入する時8086とかと迷ったのですが・・
そういう事情があったのですか・・
0504デフォルトの名無しさんNGNG
パソコン上でアセンブラ叩きたいだけなら 498 の書いてる本
買っといたほうがよかったかもね

ところで、nasm と「インテルアーキテクチャソフトウェア
デベロッパマニュアル」中巻をダウンロードして、適当な
コード書いてブルーバック拝んでみるっつー選択肢はないの?
0505デフォルトの名無しさんNGNG
>>503
コンピュータ関連の古本を多く扱う店はありますよ
神保町の古本屋街にあります
0506デフォルトの名無しさんNGNG
目的の本あるとは限らん。
0507500NGNG
>>503
どのCPUも同じような命令を持ってはいるが、例えば最もよく使う
転送命令でも単語として move を使うものや、load/store を使う
ものがあり、分岐命令も jump だったり branch だったりする。
省略のしかたも微妙に異なるので、結果的にCPU毎にプログラムが
非常に違った見え方をする。
こんな説明よりアーキテクチャの違うCPUのコードを見るほうがはやい。
0508デフォルトの名無しさんNGNG
古いCPUのアセンブラならここに行けばあるから 見てみたら?
http://www.arcpit.co.jp/xasm_0.htm
0509デフォルトの名無しさんNGNG
>>506
古本なんだから当たり前だろ
0510デフォルトの名無しさんNGNG
503です
>>504
>パソコン上でアセンブラ叩きたいだけなら 498 の書いてる本
>買っといたほうがよかったかもね
初心者ですがハードウエアのことも知りたいです、
べつにアセンブラだけ、というわけではないです
それでも「コンピュータの。。」も読んだ方がいいと思うのですが・・。
実はおっしゃっている意味がよくわかりません・・
>ところで、nasm と「インテルアーキテクチャソフトウェア
>デベロッパマニュアル」中巻をダウンロードして、適当な
>コード書いてブルーバック拝んでみるっつー選択肢はないの?
この選択肢は初心者には凄く難しく感じられるのですが・・
御免なさい、これから検索かけてみます。
>>505そうですか!ですが私は関西にいるので交通費が高くついてしまいます・・
>>507自分で書いているコードと書籍で見るコードは書式が違うって思います・・
多分CPUが違うんだと思うんですが・・
>>508う、難しそう、明日目を通します。
0511デフォルトの名無しさんNGNG
中古のPC-98とDOSで遊んでみてもいいんじゃないかな。
PCがどうやってグラフィックを出すか直感的にわかったりするし、
I/Oポートを叩くとどうなるかもわかったりする。昔の本を買う気なら
そういう選択肢も考慮してもいいかな。中古の98もヤスイし。
どうしてもWindows噛んでると、わかりにくいからねぇ、ここらへん。
0512デフォルトの名無しさんNGNG
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´Д`)/<先生!VRAM直叩きってどうやればいいんですか?
 _ / /   /   \_____________
\⊂ノ ̄ ̄ ̄ ̄\  
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          ||
0513デフォルトの名無しさんNGNG
>>512
VRAMのアドレスに代入
0514VRAMNGNG
好きなだけ叩いてくれ
0515デフォルトの名無しさんNGNG
ツンツン( ・∀・)ノ >>514 ヽ(・∀・ )アハハ、ツンツン
0516デフォルトの名無しさんNGNG
ウォラアッ、ぶったたいてやったぞ!
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人     
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ VRAMVRAMVRAMVRAM!
 (_フ彡   
0517デフォルトの名無しさんNGNG
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (;´Д`)/<先生!結局よくわからないのですが・・・・。
 _ / /   /   \_____________
\⊂ノ ̄ ̄ ̄ ̄\  
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          ||
0518デフォルトの名無しさんNGNG
昔のPC98、8色だったから8ドットごとにまとめて書き込んで愉快だった。
0519デフォルトの名無しさんNGNG
                   .__________
      ∧_∧        /
     (#・∀・)/つ=・~<  まずDOSを極めろや
    /      ノ     \
   / /\   / ̄\       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 _| ̄ ̄ \ /  ヽ \_
 \ ̄  ̄  ̄ ̄ ̄ )\__)\
  ||\ θロ    ` ⌒ドン. \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0520デフォルトの名無しさんNGNG
8色だから、じゃなくて、プレーン方式だったから、だろ。
0521デフォルトの名無しさんNGNG
・゚・(ノД`)・゚・うえーん。
先生のバカー!
DOSなんて使いたくないよお・゚・(ノД`)・゚・
0522デフォルトの名無しさんNGNG
                   .__________
      ∧_∧        /
     (#・∀・)/つ=・~<  煎ってよし
    /      ノ     \
   / /\   / ̄\       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 _| ̄ ̄ \ /  ヽ \_
 \ ̄  ̄  ̄ ̄ ̄ )\__)\
  ||\ θロ    ` ⌒ドン. \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0523デフォルトの名無しさんNGNG
教えて君ですまそ。
アセンブラ始めてみたんだけど、ごく基本的なところで詰まってます。
以下のソースをmasm32でML /c して、link16でリンクしてるんですが、
Win2000のDOS窓で何も表示されないままコマンドプロンプトに戻ってしまいます。
どうしてなんでしょうか??リンカはどっかから拾ってきたものなんですが、
リンカの使い方がおかしいんでしょうか?
ちなみにCPUはcerelon700です。
===
_TEXT segment byte public use16 'CODE'
assume cs:_TEXT,ds:_TEXT,ss:_STACK
START:
movax,cs
movds,ax
movAH,02h
movDL,30h ; 0の文字コード30をDLに代入。
INT21h ; ここで表示させたい。
INT20h
_TEXTends
;ダミーのスタックセグメント
_STACKSEGMENTSTACK
MOJIDB'dummy','$'
_STACKENDS
endSTART
0524デフォルトの名無しさんNGNG
うわ、タブが消えてしまった。ごめん。
ちなみに、このスロットプログラムはちゃんと動くんですが・・

===
_TEXT  segment byte public use16 'CODE'
     assume CS:_TEXT,DS:_TEXT,SS:_TEXT

TOP:   MOV BL,30h
START:  MOV AH,02h   ; 1 moji output to stdout
     MOV DL,BL
     INT 21h
     MOV AH,06h   ; 1 moji input from console
     MOV DL,0FFh
     INT 21h
     JNZ BTM
     MOV AH,02h
     MOV DL,08h   ; 08h=BackSpase moji
     INT 21h
     INC BL
     CMP BL,39h
     JA TOP
     JMP START
BTM:   INT 20h

_TEXT   ENDS
END
0525523NGNG
質問するような体裁になってませんでした。
もう少し考えてからまたきます。
0526デフォルトの名無しさんNGNG
>>523
あてずっぽうだけど、'0'を表示した後改行してないので、プロンプトに隠れて
見えなくなってるだけだったりしない?
'0'の表示に続けて、0Dh (CR), 0Ah (LF) と表示してみたらどうでしょう?
0527523NGNG
>>526
リプライ、感謝です。

movAH,02h
movDL,0Dh
INT21h
movAH,02h
movDL,0Ah
INT21h

を追加してみたら、「NTMDVは不正な命令を検出しました」と
出てDOS窓上(Win2000)で止まってしまいました。もうちょっと考えてみます。
デバッグの方法についてまた質問するかも知れませんが、よろしくお願いします。

#よくみたら、スタックセグメントの中身が普通じゃないですね(笑)。
 この部分は DB 100h DUP (?) にしておきました。関係ないと思いますが、一応。
0528デフォルトの名無しさんNGNG
mov si,word ptr [ecx]
これってありですか??
0529 NGNG
>>528
なんでなしだと思う?
0530デフォルトの名無しさんNGNG
32ビットを16ビットにmovしてるから?
(ごめん覚え初めて1日目)
0531 NGNG
>>530
word ptrは16ビットだが?
0532デフォルトの名無しさんNGNG
思いっきり、「あり」みたいですね。
スレよごしてごめん。
0533デフォルトの名無しさんNGNG
>>528
書くときはmov si, ecxでもいい
siのサイズが分かってるんで
0534デフォルトの名無しさんNGNG
mov si, [ecx]ね
0535523NGNG
523です。前回のはまだ解決していないのですが、しばらくおいときます。

cとアセンブラのリンクにおけるNEAR CALL/FAR CALLついての質問です・・
cでmian(){}を書き、その中からアセンブラで記述したsum()という関数を
呼び出すことを考えています。

#main() と sum() は main.c sum.asm というファイルに記述し、
 >gcc -c main.c
 >ml /c sum.asm   (←masm32というアセンブラです)
 にてオブジェクトファイルを作り、最後に
 gcc -o main.exe main.o sum.obj(*1)
 することを念頭に置いてます。

一方、PROCを呼ぶとき、NEARかFARという指定がありますが、
これは、リンクのあとで main() と sum() が同一(コード)セグメントに
あればNEAR、そうでなければFARだと理解してます。

ですが、main()とsum()が同一セグメントに置かれるか否かは
事前にはどうしたらわかるのでしょうか?もしくは指定できるのでしょうか?
ちなみに、

gcc -S main.c

として吐き出されたファイルは、call _sum というnear callに
なっていました。
0536523NGNG
書き忘れましたが、指定の方法ですが、 __far とかいう指定方法が存在することは、
一応知ってます。
ということは、cとアセンブラを最後にリンクする場合には、もしかして全てFAR CALL
になるんでしょうか?
0537523NGNG
>>523の問題、解決したっぽいです。

理由はわかりませんが(?)、終了コードを間違いを直したら正常に動きました。
>INT 20h
のところを
>mov AH,4Ch
>int 21
が正解のようです。Win2KのDOS窓やMS-DOS6.2で動作しました。
INT 20h のままだと、DOS6.2では 0 が表示されるものの、コンソールに戻ってこずにハングアップします。

INT 20h は「初めて読む8086」のスロットプログラムからパクって来たのですが、
これが行けなかったみたいです。

ちなみに、0Dh OAh を出力すると、もう1行改行が入りました。
0538 NGNG
>>535
何bitのプログラムを作りたいのだ?
0539not 535NGNG
>>538 23bitとか分けのわからないことを言ってみるテスト
0540デフォルトの名無しさんNGNG
>>538
う。えーとですね、dos窓で動かしたいのでたぶん16bitです。(?)
あれー、でもmasm32が出すのは32bitなのかな?
もしかしてたまたま動いちゃってただけ?

ちょっと吐き出されたバイナリを読んで、考えてきます。
ヒントどうもでした〜。
0541デフォルトの名無しさんNGNG
mmxレジスタの中身はどうやれば表示させられるのでしょうか
debugだとrでいけたですよね
0542デフォルトの名無しさんNGNG
near とか far とかあるのは x86系だけなの?
こんどアセンブラにかかわりそうなヨカン
0543デフォルトの名無しさんNGNG
>542
いろいろあるよ。
0544デフォルトの名無しさんNGNG
VRAMに書き込むのってどうやるんですか?
0545デフォルトの名無しさんNGNG
VRAMに直にアクセスできるのなら、そのアドレスを調べて
書き込めばいいんじゃないの
0546デフォルトの名無しさんNGNG
仕事でSHとつきあってるけどなんか嫌。
ARMのがいいなぁ。
ボヤキでスマソ。
0547デフォルトの名無しさんNGNG
お前らわかったからバイナリエディタでcomファイル開いてcd 20と打て屋
催促のプログラムだぜ。
0548デフォルトの名無しさんNGNG
アセンブラは糞。
0549デフォルトの名無しさんNGNG
スレ違いかもしれないですが、CASLで小数点のかけ算、わり算の計算ってどうやればいいのでしょうか?
もし誰か分かる人がいらっしゃったらお願いします。
0550デフォルトの名無しさんNGNG
>>549
 少数点が無い場合ならわかるのですね?

 少数点は一般的には

 1)指定した所に ある事にして計算する
       1.15形式とか呼びますね
    掛算した結果は a.b*c.d =(a+c).(b+d)形式となります
       1.15形式同士なら 2.30形式になります。

 2)どこにあるかをメモリ上で指定して行う
     浮動小数点形式という方法です

 3)特殊なコードで少数点をあらわす(ASCIIコードのまま計算するとか)

0551デフォルトの名無しさんNGNG
初めまして。相談なのですが、ARM用のアセンブリ言語を勉強する
必要があって参考書を探しているのですが、なかなか見つかりません。
今手元にあるのはCQ出版社の「ARMプロセッサ」という本なの
ですが、これ以外に良い参考書はあるでしょうか?
もしありましたら教えていただけないでしょうか。お願いします。
0552デフォルトの名無しさんNGNG
>>551
英語は読めますか?
0553 NGNG
ARM Reference Manual てのがあるよね。
これ以外にまともな資料は知らん。
StrongARM とかのマニュアルにもニーモニックの解説とかないし。
なにか規制があるんじゃない?
0554デフォルトの名無しさんNGNG
>>550さん

どうもありがとうございます。
a.b*c.d =(a+c).(b+d)って2.3*4.1=(2+4).(3+1)
って意味でしょうか?
0555名無しさん@EmacsNGNG
>>551
ちょっと高いが。
http://www.jp.arm.com/kk/kk_shop.html
0556デフォルトの名無しさんNGNG
>>554
 そうです。
  5bit同士の掛算なら結果は10ビットになります
 10進で考えると判り易いでしょう
12.345*1234.5 = 152399.025
 
0557551NGNG
>>552
 英語は基礎的なものしか読めないです(^-^;

>>553
 ARM Reference Manual ですか。調べてみることにします。

>>555
 9500円ですか…でも必要なことは載ってそうなので購入を
 検討してみます。

みなさんありがとうございました。
0558555NGNG
>>557

俺が紹介した 9500円 のは、>>553(英語。5000円くらい??)の和訳。
0559デフォルトの名無しさんNGNG
68x00チップの達人はここにはおらんのか
0560デフォルトの名無しさんNGNG
68x00って何
0561デフォルトの名無しさんNGNG
>>560
モトローラの 68000 シリーズじゃない?
0562デフォルトの名無しさんNGNG
68100、68090の次のチップさね。
0563デフォルトの名無しさんNGNG
>>561
> モトローラの 68000 シリーズじゃない?
68000 シリーズなら 680x0 と言うし、68340 なんかなら 683xx と言うだろうね。総称する時は、68K だよ。
まあ、単に 680x0 を間違えただけじゃない ? 68x00 でググッたら、316 件もヒットするからね。(680x0 なら、約65,000件ヒットするが...。)
0564デフォルトの名無しさんNGNG
それより559が何をしたかったのかが知りたい
0565デフォルトの名無しさんNGNG
クワッドワードって何バイト?
0566デフォルトの名無しさんNGNG
(intel16ビット遺物時代から)
word=16bit
double word=32bit
quad word=64bit
じゃないの?(ちがうかもしれない)
0567デフォルトの名無しさんNGNG
>>556
ありがとうございます。
おかげさまで計算のプログラムは出来ました。
現在計算結果の10進数表記を書いています。
0568デフォルトの名無しさんNGNG
>>566
激しくおっぱいでした。
いやありがとうでやんした。
0569デフォルトの名無しさんNGNG
>>567
何の計算に使うの? 数値計算?グラフィック?
0570デフォルトの名無しさんNGNG
CASLで?
0571デフォルトの名無しさんNGNG
>>559
http://pc.2ch.net/i4004/kako/1008/10084/1008433236.html
の608程度じゃ達人とは言えないかなぁ、やっぱり…。
0572デフォルトの名無しさんNGNG
>>569
学校の課題です。
ようやく終わりました。ヽ(´∀`)ノ
数式をcaslコードに変換するコンパイラを作りなさいという課題でした。
どうもありがとうございました。
0573デフォルトの名無しさんNGNG
今多倍長整数演算をアセンブラの勉強がてら作ってるんです。
そこで、Intelのアセンブラでsbbっていうオーバフローフラグ見てくれる減算があるって、
なーんだ簡単じゃねーかと大喜びしたのもつかの間、途中でアドレスの演算しちゃうと
オーバーフローフラグが変わってしまうし、ループまわしても分岐の確認の為にオーバフロー
フラグ変わっちゃいますです。だれか助けて。
0574デフォルトの名無しさんNGNG
> sbbっていうオーバフローフラグ見てくれる減算があるって、
ネタか?
0575デフォルトの名無しさんNGNG
>>574
ネタじゃないです。
0576デフォルトの名無しさんNGNG
>>573
> なーんだ簡単じゃねーかと大喜びしたのもつかの間、途中でアドレスの演算しちゃうと
> オーバーフローフラグが変わってしまうし、ループまわしても分岐の確認の為にオーバフロー
> フラグ変わっちゃいますです。だれか助けて。

アドレス演算って何やってんのかわからんけど、±1 なら INC 使えばいいし、もっと複雑な奴なら LEA とかじゃダメなん ?
ループは、そのものずばりの LOOP 命令使えばいいと思うが...。

どうしてもって言う時は、SAHF/LAHF, PUSHF/POPF で一時退避しとくと言う手もあるし...。
0577デフォルトの名無しさんNGNG
>>575
フラグを保持しようとしてる目的は一体何なんだ?
0578デフォルトの名無しさんNGNG
>>576
おひょ、LOOP命令なんちゅうもんが有るのかぁ。ありがとうです。
INC、DECは使えると思ったんですが、Loopの戻りをどうすっか悩んでました。

>>577
引き算してオーバフローした時に次の桁から1引きたいんです。

int a[4],b[4]
a[0]-b[0]このときオバーフロしてたら、
a[1]-b[1]から1を引く

てな感じで。。。
0579デフォルトの名無しさんNGNG
subしてそのままsbbすればいいじゃん。
その間にmovを入れてもフラグは不変だし。
0580デフォルトの名無しさんNGNG
>>579
2つまでならOKなのですが、3ッつめ以降で詰まっちゃって。
sub a[0],b[0]
sbb a[1],b[1]
までは大丈夫なんだけど、
sub a[0],b[0]
sbb a[1],b[1]
ここからが問題になって。
sbb a[2],b[2]

添え字をじか打ちしてやればいいんだけど
数が多くなると嫌だから...
0581デフォルトの名無しさんNGNG
2つずつ処理すればいいじゃん。
0582581NGNG
あ、581は間違いだ。
0583581NGNG
間に別の条件分岐を入れたいということ?
ならSBBよりSETBとかの方が速いかもね。
0584デフォルトの名無しさんNGNG
>>580
普通は最初の sub を特別扱いしたくないので、キャリー (オーバーフローじゃねーぞ、オーバーフローは別にある) フラグをクリアしてからループを組む。

CF = 0
while(0 < len--){
 sbb *a,*b
a++;
 b++;
}

みたいな感じでやる。

>>583
> 間に別の条件分岐を入れたいということ?
> ならSBBよりSETBとかの方が速いかもね。

SBB ... Integer Subtraction with Borrow
SETB .. Set Byte on Condition (CF = 1)

どう間違えたら、「SBB より SETB」 とか思えるんだ ?
0585デフォルトの名無しさんNGNG
> どう間違えたら、「SBB より SETB」 とか思えるんだ ?

はあ?
> 間に別の条件分岐を入れたいということ?
こう書いてあっても理解できんかったのか?
SBBの代わりにSETB+SUBを使う手もあり
ということなんだが。
0586デフォルトの名無しさんNGNG
>>585
> はあ?

なんか言い訳してるみたいだけど、訳わからんし...。

次に書く時は、ちゃんとコード書いてからにしてくれ。
0587デフォルトの名無しさんNGNG
> 次に書く時は、ちゃんとコード書いてからにしてくれ。

なら前もって「自分は読解力が足りないのでコードでお願いします」
と書いとけ。後から現れて勝手に誤解してる奴の言うセリフではない。
0588デフォルトの名無しさんNGNG
>>587
恥かしい時は黙った方が良いよ。
SETB+SUBを使ったコードがどれほど助長になるか位は
素人でも分かる。
0589デフォルトの名無しさんNGNG
まぁ質問で口語体使うやつはたいていDQN。
0590デフォルトの名無しさんNGNG
>>588
試しにあなたがSETB+SUBを使うという条件において最善のコードを書いてみて下さい。
0591デフォルトの名無しさんNGNG
>>588
> SETB+SUBを使ったコードがどれほど助長になるか位は
助長って何だろ?
583はループ中に別の(フラグ変更を伴う)処理が
入っているのなら という前提だろ。
その場合は無理にpushf/popfなどを使ってsbbするより
setbでCFをレジスタに入れてsubする方が速い
と言っているのだと思うが。

583の説明不足と、584の理解力&経験不足で両成敗だな。
0592デフォルトの名無しさんNGNG
>>591
>setbでCFをレジスタに入れてsubする方が速い

これってsbbを1回実行する代わりに、subを2回実行するってこと?
次のCFはどうやって生成するの?
0593デフォルトの名無しさんNGNG
>>592
そうだね。あまり効率が上がらないね。
INC/DECはCFは変化しないし LEA なら何も変化しないから
折角アセンブラを使うなら、これを組み合わせて実現すべきだね

でも、多倍長なら高級言語で100進か千進で書く事をお勧めするよ。
0594デフォルトの名無しさんNGNG
>でも、多倍長なら高級言語で100進か千進で書く事をお勧めするよ。
10000進法?かなC++で、int一つに10000まで記述する方法で一回書いたんですが、
やっぱ遅いッス。10000の桁あふれを10000で割ってみる事で調整したのが
敗因と解ったような気がしてるんですが。

桁あふれの調整を割り算以外でやるとなると、引き算しかなくて。
引き算の手間隙考えるとアセンブラの勉強も兼ねてアセンブラの方が
ええかなぁと思ったのでアセンブラで書き始めています。
0595デフォルトの名無しさんNGNG
>>594
 そりゃ遅いのはしょうがないよ。

1、普通は毎回桁溢処理というか正規化をしない方針でいいんじゃないの?
2、足算の場合、毎回正規化するなら割算でなく引算でいい
0596デフォルトの名無しさんNGNG
>1、普通は毎回桁溢処理というか正規化をしない方針でいいんじゃないの?
毎回正規化しない方法が思いつかないんですよね。
どんな方法取られてます?
0597デフォルトの名無しさんNGNG
えと 万進法を取ったって事は 1WORD=16bit って事ですよね?
だったら、2万回くらいの加減算算では正規化するひつようはないですね?

0598デフォルトの名無しさんNGNG
CASLの本でおすすめの本がありましたら、教えてください。
0599デフォルトの名無しさんNGNG
>>597
ほほぉ。足し算だけ2万回してるって言うのが保証されるプログラム用途かぁ…
僕の用途だと難しいですね。数値計算のある問題に特化したプログラムの事なのですか?
でも、それなら作るのは簡単。なるほどね、色々面白い。
0600デフォルトの名無しさんNGNG
>>599
違うよ。 だから、加減算が2万回以下なら正規化しなくていいって事は
非正規化カウンタみたいなのを1ワード増やしておいて
正規化カウンタが例えば100回を超えたら正規化するようにしておけば

毎回正規化する負荷 > 1ワードのカウンタ +100回に1回正規化する負荷
でしょ?

それから掛算の時とかは途中結果でキャリー処理をせずに最後に正規化をかければいいから
掛算まで考えると、これはそんなに遅くない筈
0601デフォルトの名無しさんNGNG
>>590
> 試しにあなたがSETB+SUBを使うという条件において最善のコードを書いてみて下さい。

結局あんたは、書けないわけね。

>>591
> 583はループ中に別の(フラグ変更を伴う)処理が
> 入っているのなら という前提だろ。

つーか、>>583 で...

> 間に別の条件分岐を入れたいということ?

とか勝手に勘違いしてただけだろ。

そもそも、「多倍長整数演算」と言う範疇で話が進んでいたんだから、違う方面に進むんなら説明しないとわからんぞ。
せめて、「SBB より SETB + SUB とかの方が...」と書いてくれ。
0602デフォルトの名無しさんNGNG
>>601

 SETB EAX
 何か処理
 ADD EAX,-1
 SUB src,dst
0603デフォルトの名無しさんNGNG
あれ? 何か違うな
SETB EAX でCFの反転を保存して
 何か処理して
ADD #-1,EAX でボロー復元して
SBB か
0604デフォルトの名無しさんNGNG
>>602
> SETB EAX

お前、SETB 使ったこと無いだろ。

せっかく >>584 に書いてやってるんだから、ちゃんと見ろ。

>> SETB .. Set Byte on Condition (CF = 1)
        ^^^^
EAX なんか指定できるわけねーよ。

そもそも、>>602 のコードが何をしたいのかわけわからんし...。
0605デフォルトの名無しさんNGNG
CFのレジスタへの保存ってSETBではなく
SBB EDX,EDX
とか使わない?
0か-1になるけど。
0606デフォルトの名無しさんNGNG
一応補足。
CFの復元は
ADD EDX,EDX とか
SHR EDX,1 とか
p5のころはペアリング次第で最速だったと思うけど最近のCPUではわからない。
0607590NGNG
>>601
結局というか、もともとx86アセンブラはある程度読めるけど
書くのは出来ないから振ってみただけなんだが…

他の誰かと勝手に勘違いしてない?
0608デフォルトの名無しさんNGNG
>>603
こんなんでどう?

SETB BL
何かの処理
NEG BL
SBB src,dst


>>605
PentiumIIIの場合、
SBBは2マイクロOPS
SETBは1マイクロOPS
0609デフォルトの名無しさんNGNG
オペコードを直で覚えてる人がいるスレはここですか
0610デフォルトの名無しさんNGNG
8B 85 FC FE FF FF
mov eax, [ebp+fffffefc]

楽勝ですが何か?
0611デフォルトの名無しさんNGNG
俺も楽勝

69 69 69 69
mov mouth,penis
mov pussy,mouth
0612デフォルトの名無しさんNGNG
今時アセンブラで書いてられるのは
8ビットのZ80位なもんだろ

今時のRISC(CISCもどき)は
コード並び順序を仕様に沿ってやらないと、
パイプラインが乱れて実行速度が落ちるだろ

こんなアセンブラ、
やってられまへん
0613デフォルトの名無しさんNGNG
>>612
アウトオブオーダを知らんのかね
コンパイラが SIMD まで全部最適化してくれるならアセンブラなんて
触りたくもないけど速度が倍違うとやらないわけにはいかんのよ
0614デフォルトの名無しさんNGNG
>>606
> CFの復元は
> ADD EDX,EDX とか
> SHR EDX,1 とか

これでどうやったら、CF が復元できるんだろう...。

>>607
> 結局というか、もともとx86アセンブラはある程度読めるけど
> 書くのは出来ないから振ってみただけなんだが

自分では書けないけど、人のコードは批評したいわけね...。
0615デフォルトの名無しさんNGNG
> 自分では書けないけど、人のコードは批評したいわけね...。

俺たち2ちゃんねらーなんだけど、何か?
0616605&606NGNG
>>614
CF=1の場合
SBB reg,reg でreg=not 0になる
ここに適当な処理
ADD reg,reg でCF=1にもどる

CF=0の場合
SBB reg,reg でreg=0になる
ここに適当な処理
ADD reg,reg でCF=0にもどる

レジスタをひとつ犠牲にするのが問題。
レジスタのは貴重だし、Pentium3ではSETBの方が効率がよいらしい。
>>608さん、情報ありがとう。
0617614NGNG
>>616
なんか俺、勘違いしてたみたい。CF の復元はできるね...。

> レジスタをひとつ犠牲にするのが問題。

レジスタを犠牲にするのはSETB も同じだし、どっかに保存するしかないから当然だと思う。

> レジスタのは貴重だし、Pentium3ではSETBの方が効率がよいらしい。

それにわかりやすいし...。
0618デフォルトの名無しさんNGNG
( ´_ゝ`)フーン
0619デフォルトの名無しさんNGNG
浮雲。
0620デフォルトの名無しさんNGNG
どこかにBorland Turbo Assemblerって無いですかね?
0621デフォルトの名無しさんNGNG
age
0622デフォルトの名無しさんNGNG
>>620 有料でいいなら >>325
0623デフォルトの名無しさんNGNG
>>622
ちなみに、無料では手に入らないですかね?
0624デフォルトの名無しさんNGNG
>>623
割れろ。
0625デフォルトの名無しさんNGNG
>>612
PS2 の VU (ベクトル演算ユニット) とか、最近の DirectX のシェーダーとか。
いちおうコンパイラも出てきつつあるんだが、まだまだ辛い日々でございます。
0626デフォルトの名無しさんNGNG
>>623 NASMにしる
0627デフォルトの名無しさんNGNG
>>624
割れろって?

>>626
NASMって何ですか?
0628デフォルトの名無しさんNGNG
つまりTurbo Assemblerは無料では手に入らないって事なんですかね?
0629デフォルトの名無しさんNGNG
割れろ。
0630デフォルトの名無しさんNGNG
>>627
割れる方法。

友達にC++Builder6 ProfessionalかDelphi6 Professionalを持っている
人を探す。

その人の家に生CD-Rを持参。

以降略。
0631デフォルトの名無しさんNGNG
NASMもMASMもフリーなんだけどねー
MASMなんて昔いくらしたんだっけ?
0632デフォルトの名無しさんNGNG
> MASMもフリー

へ?
0633デフォルトの名無しさんNGNG
Win95だったか98のDDKに入っていたような気がするが。
なんか制限なかったっけ?
0634デフォルトの名無しさんNGNG
>>633
たしかDDKは無償配布が終わった筈
0635デフォルトの名無しさんNGNG
>>634
どっかにあったよ、でも、もしかして・・・
ガクガク((((;゚д゚)))))ブルブル
0636デフォルトの名無しさんNGNG
MagicNumberってなんですか?
MZ?PE?わかりません・・・(-_-
0637デフォルトの名無しさんNGNG
SYMDEB 使えよ
0638デフォルトの名無しさんNGNG
>>634
そうだったのか、すらんかった。いや、入手済みだからいいんだが。
MASM は、まだ vcpp.exe か vcpp5.exe を落とせば手に入るな。
0639デフォルトの名無しさんNGNG
vcpp5.exeとかって初めて聞いたんで検索してみたんですけど
http://msdn.microsoft.com/vstudio/downloads/tools/ppack/download.asp

アンインストーラが無いのでアンインストールにはいったんVC6をアンインストール
しなければならないってことですよね。
あと、SPのバージョンによってDLするものが違うということは、
仮にSP6なんてのが出たらまた変更しないとダメなんだろうか、とか。
このへんどうなんでしょう。
0640デフォルトの名無しさんNGNG
>>639
実はインストールしたこと無いからそこんとこは知らんのよ。
vcpp /C /T:c:\tmp
とかすればインストールせずに MASM が取り出せてウマー!
というか、現在 MASM の最新版はこの VCPP に付属の Ver.6.15 だ。
0641デフォルトの名無しさんNGNG
んー、ちょっと使ってみたかっただけなので躊躇してたんですが
それで取り出せるならDLしてみようかなぁ
0642デフォルトの名無しさんNGNG
>>636
他人から見たら意味不明の定数をコード中に埋め込むことです。
0643デフォルトの名無しさんNGNG
そして半年後の自分は立派な他人です。
0644デフォルトの名無しさんNGNG
ヘ!
INT 21
0645デフォルトの名無しさんNGNG
>>643
ほうけいしゅじゅちゅでもするの?
0646デフォルトの名無しさんNGNG
>>645
整形しますが何か?
0647デフォルトの名無しさんNGNG
>>640
それってMASMがフリーで手に入るってこと?
0648デフォルトの名無しさんNGNG
そういうこと。ライセンス的には激しくマズーかもしれんが(藁
0649デフォルトの名無しさんNGNG
俺はVC6持ってるのでウマーと。
でさっそく落として>>640の方法で取り出した。
今ml.exeが目の前にあるよ(゜Д゚) ウマー

8086マクロアセンブラ入門という比較的新しい本にサンプルをDDKで動かす例があるけど
本に記載されてるページ(MSのDDKのページ)に行っても落とせないんだもの。
アマゾンかどっかの書評でもそんなことが書いてたなぁ。
0650manko_chinko ◆GLc2rpKRNM NGNG
>>649
microsoftのftpサイトにいくと落とせると思う
0651デフォルトの名無しさんNGNG
>>650
どこ?ここ?ftp://ftp.microsoft.com/developr/masm/
テキストしか置いてないけど。
0652デフォルトの名無しさんNGNG
アセンブラ入門の本って16ビットCPUのことが多いけど、
32ビットCPU、というかPentium以降を前提とした
入門書ってあるの?
0653デフォルトの名無しさんNGNG
SHとかH8をターゲットにするなら分からなくもないけど...
0654デフォルトの名無しさんNGNG
ここにMASMあった。
ftp://ftp.microsoft.com/softlib/MSLFILES/

あとDLしてないんだけどDDKもあるぽい。
http://www.microsoft.com/ddk/download/98/BINS_DDK.EXE
http://www.microsoft.com/ddk/download/98/98SETUP.EXE
0655デフォルトの名無しさんNGNG
あ、ごめん。MASMじゃなくてパッチだった。↑のftpのml614.exe
0656アフォNGNG
http://groups.google.co.jp/groups?q=MASM+group:fj.comp.lang.c&hl=ja&lr=&ie=UTF-8&oe=UTF-8&selm=3A7A0F45.5D45F508%40nifty.ne.jp&rnum=2
0657デフォルトの名無しさんNGNG
Win98DDK フルセットハッケーソ! (26,377,712bytes)
http://download.microsoft.com/download/win98SE/Install/Gold/W98/EN-US/98DDK.EXE

ネタ元
http://people.freenet.de/Power-Info/Windows98_DDK.htm
0658デフォルトの名無しさんNGNG
PICマイコンでいろいろやろうとしてるんだが。
秋月の 16F877 ICEキットのtutrialさえうまく走らない。
詳しいサイトないかな。2年くらい前にすごく懇切丁寧なサイトを
見た記憶があるんだけど、消えたのか、見つからないや。
0659デフォルトの名無しさんNGNG
>>658
↓ここはいいよ
電子工作の実験室 (PIC、マイコン、ラジコン、EDA、VHDL、CPLD)
http://www.picfun.com/
0660658NGNG
>>659
レスありがとう。でもそこは何回も見たんだ・・・。
俺はじめたばっかりの厨なんだ。ごめんよ。
辞めた先輩に、途中の仕事丸投げされたんだ。
秋月のICEキットで書き込もうとしたらなんかエラーが出て
README.ICE見ろって。見たら SLEEP instruction したらダメだって。
で、具体的にどーしたらいいんじゃーってトコで定時になったから
帰りマスタ。土曜日だし。来週からまたがんがるよ(´・ω・`)
0661デフォルトの名無しさん NGNG
「はじめて読む8086」を読んでいて、条件ジャンプ命令はショートジャンプ
のみと書いてあるのですが、なぜショートジャンプしか出来ないのでしょうか?
0662 NGNG
http://www.430.jp/rak2/rak2_pv.cgi?no=9_9_9_9&bbs_view=1gvjewoi
0663デフォルトの名無しさんNGNG
>>661
そういう設計だからです。
でも確か、アセンブラ機能かマクロで ロングジャンプでも勝手に処理してくれるようになってたような
0664デフォルトの名無しさんNGNG
>>661
「8086 のアーキテクトが、条件ジャンプはほとんどショートジャンプの範囲に収まるし、万が一収まらなかったら、jmp との組み合わせで対処すりゃいいじゃん。」と思ったから。
0665デフォルトの名無しさんNGNG
>>663 >>664
わかりました。そういう設計なんだと考えることにします。
0666テンプレ(色んな所に貼ってね)NGNG
キム・ヘギョンさんインタビューに対する抗議本部
◆フジテレビ転じてニダテレビに抗議しよう◆
http://ex.2ch.net/test/read.cgi/news/1035557590/
◆フジテレビへの抗議のメールフォームはこちら◆
http://www.fujitv.co.jp/cgi-bin/response/2002mail_j.pl?from=index
◆電話や葉書での抗議はこちら◆
http://www.fujitv.co.jp/jp/faq/kaitou/answer2.html
◆放送番組向上協議会(向上協)放送と青少年に関する視聴者からの意見◆
http://homepage2.nifty.com/kojokyo/kojokyo/index.html
◆首相官邸への抗議先◆
http://www.kantei.go.jp/jp/forms/goiken.html
◆キム・ヘギョンさん会見:フジテレビが釈明コメント(言い訳)◆
http://corn.2ch.net/test/read.cgi/news2/1035642345/

横田めぐみさんの父、滋さん(は25日、東京都港区のフジテレビで、
孫のキム・ヘギョンさん(15)が出演したテレビ番組について
「警察の取り調べのようでかわいそうだ。何のためのインタビューなのか、疑問だ」と話した。
http://www.sankei.co.jp/news/021025/1025sha123.htm
上記の通りフジテレビは15歳の女の子も視聴率の餌にする鬼畜放送局です。
我々日本国民は断じてこの様な下劣な報道を放置しておくわけにはいきません。
断固、抗議しましょう。

http://www53.tok2.com/home/vbc/cgi-bin/upload/source/up0285.jpg
フジのアホ編集が「会見泣き」のテロップを出した瞬間(ネタじゃないよ)
0667デフォルトの名無しさんNGNG
>>665
ついでに、何故そういう設計がありうるかというと、
ショートのほうが命令が小さいし速くできるから嬉しい
という面があったの。そうでないと不便な方を選ぶ意味はないよね。
0668デフォルトの名無しさんNGNG
今の CPU はロングも対応してるけどね。
命令長くなるけど。
0669デフォルトの名無しさんNGNG
Win98DDK 個別ファイル一覧

http://www.microsoft.com/ddk/download/98/98SETUP.EXE
http://www.microsoft.com/ddk/download/98/98BLDENV.EXE
http://www.microsoft.com/ddk/download/98/98SAMPLES.EXE
http://www.microsoft.com/ddk/download/98/98LEGACY.EXE
http://www.microsoft.com/ddk/download/98/98SPECIAL.EXE
http://www.microsoft.com/ddk/download/98/98DOCS.EXE
0670デフォルトの名無しさんNGNG
 すみません、質問させてください。あるデータをキャッシュに入れて
その後の処理をさせたいと思い、PREFETCH(NTA,0,1)を使ったプログラムを
書きました。なかなかの効果があったのですが、この命令を入れた
プログラムってAthlonでも動くのでしょうか?_

 現在は、この命令を使うかどうかはSSEを使えるかどうかでチェックして
いるのですが、これだと当然SSE付きのAthlonでも実行されてしまいます。その
時、Athlonがintel用のPREFETCH命令を実行できなかったら当然まずいことになる
訳で……。

 私がAthlonマシンを持っていれば、自分で確かめられるのですが、残念ながら
持っておりませんので、ご存知の方がいらしたら、教えていただけませんでしょうか?
0671デフォルトの名無しさんNGNG
win98ddkって2000でも使えるんですか?
0672デフォルトの名無しさんNGNG
Windows2000のコマンドプロンプトでLASM体験版のhello.asmを
http://www.tamasoft.co.jp/lasm/install.html
のとおりにアセンブルし、hello.exeは作られたのですが、
helloを実行しても何も表示されません。
なぜでしょうか?他にもやることがあるのでしょうか?
0673デフォルトの名無しさんNGNG
>>670
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/22466.pdf
Athlonがなくてもこのへんを見ると
AthlonでPrefetch*ができることがわかるよ
0674673NGNG
補足
ちゃんとintel用のPrefetch*と同じオペコードだから問題なし
0675670NGNG
>>673,674
 ご親切に感謝します。ありがとうございます。

 そうですよね、CPUメーカーのサイトに行くのが当然ですよね。なのに
俺ときたら……。先ほど、紹介していただいたPDFとIntelの命令表の
PDFを見てきました。これで安心してPrefetchが使えます。

 本当にありがとうございました。
0676デフォルトの名無しさんNGNG
>>666
うざすぎ市ね
2度とム板に来るな
0677デフォルトの名無しさんNGNG
nasmのアセンブル速度って遅い?
0678デフォルトの名無しさんNGNG
マシンによる。
0679デフォルトの名無しさんNGNG
じゃTASMやMASMと比べて。
0680デフォルトの名無しさんNGNG
OMF形式の質問ってここでよいのでしょうか。それともくだスレ?
0681デフォルトの名無しさんNGNG
すみません、masmでの構造体の使い方を教えてください。
検索してもでてこないので。
0682デフォルトの名無しさんNGNG
>>681
http://www.clipx.net/ng/asm/ng41c99.php
0683デフォルトの名無しさんNGNG
教えてください!
アセンブラの命令サイズは主にオペランドの数に依る、と思うのですが、
●でしょうか×でしょうか?
レジスタを触るかメモリを触るかにも依るとは思いますが。

あと、
ldrがmovより重いのはメモリを触るから、で●でしょうか?

あと、
パリティフラグってどういう目的で使用するのでしょうか?
立っているビットが奇数か偶数かを判断する必要がある場合ってどんな場合なのでしょうか?

0684デフォルトの名無しさんNGNG
SSE,SSE2のdisassembler結果ありませんか?
0685デフォルトの名無しさんNGNG
>>683
> アセンブラの命令サイズは主にオペランドの数に依る
それも理由の一つだが、命令セットの設計の方が大きいと思う。
固定長の RISC と可変長の CISC だと話が違うし、最近流行りの
VLIW だと一塊りのメモリに複数の命令をパックするわけで。

ただ、現実的な 32bit RISC プロセッサに限定すれば、それが主な
要因だろうね。実際 ARM 系のプロセッサなんかは 3 オペランドの
32bit 命令セットと、2 オペランドの 16bit 命令セットを持ってるし。
0686デフォルトの名無しさんNGNG
>>683
> ldrがmovより重いのはメモリを触るから、で●でしょうか?

そうだね。

> パリティフラグってどういう目的で使用するのでしょうか?
> 立っているビットが奇数か偶数かを判断する必要がある場合ってどんな場合なのでしょうか?

あんまり使い道なさそうな気がするけど…。
昔は、データのシリアル転送でエラーが起きていないかどうかチェックするのに、
パリティビットを付加したりしたので、そのエラーチェックに使用するとか。

実際、パリティフラグなんて付いてないCPUの方が多いんじゃないかな。
Z80やx86くらいしか思いつかない…。
0687デフォルトの名無しさんNGNG
>>683
1個の誤りを検出出来る。
0688デフォルトの名無しさんNGNG
>>683です

>>685
質問が不明瞭でごめんなさい、
同一CPUで使われている命令のサイズの違いについて伺っていました。
>ただ、現実的な 32bit RISC プロセッサに限定すれば、それが主な
>要因だろうね。実際 ARM 系のプロセッサなんかは 3 オペランドの
>32bit 命令セットと、2 オペランドの 16bit 命令セットを持ってるし。
なので↑で納得いきました。
>>686
>あんまり使い道なさそうな気がするけど…。
私も使ったことがありません。
>昔は、データのシリアル転送でエラーが起きていないかどうかチェックするのに、
>パリティビットを付加したりしたので、そのエラーチェックに使用するとか。
転送前後でデータの立っているビットの数が異なっていなければ
正常転送とみなす(ゲームのセーブデータのサムチェックとちょっと似ている)、
ということかと思ってしまいましたが
それでは確実ではないような・・

>実際、パリティフラグなんて付いてないCPUの方が多いんじゃないかな。
ならあまり気にする必要もなさそうですね・・

>>687
1個の誤り、とは・・・?
0689デフォルトの名無しさんNGNG
incとdecをつかえないCPUがあるそうですが
なぜ使えないんだろうか?
1をadd、1をsubとか書いているらしい。
0690デフォルトの名無しさんNGNG
>>689
プログラム的には無くても困らんからな。
アーキテクチャの小さなマイコンだとその分のオペコードを別の命令に割り当てたいかもしれん。
そうでなくてもいまどき実行速度も変わりゃしねぇし、オペランドの分メモリ節約する意味もねえし、専用の命令付ける方が無駄かもしれん。
0691デフォルトの名無しさんNGNG
>>689
MIPS とかのこと? そりゃ inc なんて命令を付けなくても

addiu $1, $1, 1

で済むからでしょう。

単純な命令セットにすれば命令デコード処理が単純になり、パイプラインの
速度が稼げる。重複した命令を持つのは、アセンブラコードを書くプログラマ
にとっては書きやすくなるけど、ハードウェア的には単なるムダ。

ハードウェアは単純に代わりにコンパイル・アセンブル時に苦労しろ、そう
すれば安価で高速なチップが出来る、というのが RISC の基本思想です
から。

ただし実際問題として、それではあまりにアセンブラプログラマが大変なの
で、RISC の場合にはアセンブラが高機能になってます。たとえば MIPS で
32bit 即値をレジスタの設定するには

1. 即値を上位 16bit に読み込み、下位 16bit を 0 クリアする。
2. 即値を下位 16bit と or をとる。

と二命令必要なんだけど、アセンブラのソースでは

 li $2, 0x003f0000

と一行です。アセンブル時にアセンブラがこいつを 2 命令に分解してオブ
ジェクトファイルに書き込みます。
0692デフォルトの名無しさんNGNG
>>690
CISC だと、良く使う命令を短いオペコードに割り当てることで、メモリ使用量を
節約するってアプローチはアリだわな。0 セットとか +1, -1 なんかは、その筆
頭候補でしょう。

さすがに最近は組み込みでも ARM クラスの CPU を使える案件が多いご時
世なんで、もはや「忘れられた技術」になりつつあるけど。
0693デフォルトの名無しさんNGNG
あと、フラグまわりがどうなってるかも関係すると思う。
0694デフォルトの名無しさんNGNG
ニーモニックがCPUごとに違うのってCPUの効率向上をはかるため、
なんですよね?
0695デフォルトの名無しさんNGNG
>>694
意味不明。
CPUの効率とは何か、なぜそういう思うのか述べよ。
0696デフォルトの名無しさんNGNG
>>689
Pentium 4では、なるべくinc,decをつかわずに、1をadd、1をsubとか書けって
インテルは言ってるよ。
0697デフォルトの名無しさんNGNG
x86 の(しか知らんけど)inc と dec は
厳密には add 1 と sub 1 とは違うよね。
キャリーフラグが立たない。
といっても、その違いを利用することは
あんまないと思うけど。

最近の(といってもかなり前からだが)x86 は
特化された命令は手を抜いて
汎用的な命令を高速化する傾向にあるみたいね。
キャッシュの向上とHDDとメモリの容量増加で、
命令サイズ抑えるより汎用的な命令を強化する方向に動いてるのかね。
0698デフォルトの名無しさんNGNG
>>697
最近は x86 のような一見 CISC に見えるプロセッサでも、中身は RISC に
なってる。Pentium 4 なんかは x86 命令を、RISC 風の単純な命令に分解
した上で内部で実行してるんだが、このとき

 単純・使用頻度のな命令は複数の RISC 風の命令に分解し、効率的に実行
 複雑・使用頻度の低い命令は分解せずに、マイクロコードを読んで実行

となってるらしい。詳細な内部命令セットは公開されてないから、推測まじり
だけどさ。
 
プロセッサの周波数が GHz に達する今日、そうやって RISC の設計を採り
入れてパイプラインを深くしないと速度が出ないんでしょう。
0699デフォルトの名無しさんNGNG
>>695
的を射たツッコミだな。

>>694
それぞれの CPU には、それぞれの「効率」というか「目標」がある。

たとえば組み込み市場で広く使われている ARM であれば、ある程度の速度
に加えて

 低消費電力
 16bit メモリバスでも十分な性能を発揮できること

なんてのが重要な目標だし、一方でゲーム機向けの CPU であれば

 32bit 浮動小数点演算が高速に実行できること

が重要。

目標が違えば、当然、最適な命令セットも違ってくる。あとは

 歴史的事情、あるいは後方互換性
 コンパイラ技術の進化
 プロセッサ設計理論の進化 (パイプライン, スーパースカラー, etc)

なんてのも大きな要因だね。一時期 RISC で流行った遅延分岐命令なんての
は、パイプライン化の賜物ですな。
0700デフォルトの名無しさんNGNG
689です。
>>690
>アーキテクチャの小さなマイコンだとその分のオペコードを別の命令に割り当てたいかもしれん。
確かに!
>そうでなくてもいまどき実行速度も変わりゃしねぇし、オペランドの分メモリ節約する意味もねえし、専用の命令付ける方が無駄かもしれん。
そういえばそうなんですよね。重複命令っていう時点で無駄ですよね。
今はmov a,#0もeor a,aも変わらないとかいう話を聞いたことがあります。

>>691
>単純な命令セットにすれば命令デコード処理が単純になり、パイプラインの
>速度が稼げる。重複した命令を持つのは、アセンブラコードを書くプログラマ
>にとっては書きやすくなるけど、ハードウェア的には単なるムダ。
>ハードウェアは単純に代わりにコンパイル・アセンブル時に苦労しろ、そう
>すれば安価で高速なチップが出来る、というのが RISC の基本思想です
>から。
incやdecのほうがオペランドがすくないし、直値を扱わなくて済むから
addやsubより良いはずだと思いこんでいました。
でもハードウェアの視点から見れば確かに、incもdecも無駄ですね・・

>ただし実際問題として、それではあまりにアセンブラプログラマが大変なの
>で、RISC の場合にはアセンブラが高機能になってます。たとえば MIPS で
確かに、レジスタに数値をコピーするだけの処理に2行書くのは辛いですね
16bit同士の足し算の場合アセンブラソースは一行だけれども
レジスタ上では(?)
下8bit同士を足して桁上げが生じたらキャリーフラグがたって
それが上8it同士の足し算のさいに算入されるとかいう意外と複雑?な処理が
なされているという話しを思い出しました・・
0701デフォルトの名無しさんNGNG
689です。
>>692
>CISC だと、良く使う命令を短いオペコードに割り当てることで、メモリ使用量を
>節約するってアプローチはアリだわな。0 セットとか +1, -1 なんかは、その筆
>頭候補でしょう。
incやdecもそういうアプローチのひとつなんでしょうね。
>さすがに最近は組み込みでも ARM クラスの CPU を使える案件が多いご時
>世なんで、もはや「忘れられた技術」になりつつあるけど。
古いんですか(失笑)
>>693
>あと、フラグまわりがどうなってるかも関係すると思う。
たとえばどのフラグなんでしょうか?CFとかでしょうか?
>>696
>Pentium 4では、なるべくinc,decをつかわずに、1をadd、1をsubとか書けって
>インテルは言ってるよ。
了解しました・・inc decは不要なんですね・・昨日まではあったほうが絶対便利だと思っていたのに
>>697
>x86 の(しか知らんけど)inc と dec は
>厳密には add 1 と sub 1 とは違うよね。
>キャリーフラグが立たない。
立たなくても問題無いんですか・・
>最近の(といってもかなり前からだが)x86 は
>特化された命令は手を抜いて
>汎用的な命令を高速化する傾向にあるみたいね。
>キャッシュの向上とHDDとメモリの容量増加で、
>命令サイズ抑えるより汎用的な命令を強化する方向に動いてるのかね。
らしいですね・・。
私は末端プログラマですがこういう考え方を質問されたときなど参考にさせていただきます。
皆さん非常に納得させられるご意見でした。有難う御座いました
0702M68000シリーヅNGNG
>>689
1〜8のどれかを足したり引いたり出来る命令があるので
1だけしか足したり引いたり出来ない命令は意味がないのでありません。
0703デフォルトの名無しさんNGNG
r0,(a0)+ とか ++(a0),r0 とか

0704694NGNG
695さん
曖昧でごめんなさい。
なんでCPuごとにわざわざニーモニック(というか命令セット)が違うのか、と
疑問に思っていたのですが、計算速度の向上やメモリの縮小のため、
不要な命令を省いたり、必要な命令を加えたり、しているのだろう、と
いうことに気づいたのです。あたりまえなのでしょうけど。
699さん
ありがとうございます!
そうです、目的を実現するために最適な命令セットを作っているようですね。
 >歴史的事情、あるいは後方互換性
 >コンパイラ技術の進化
 >プロセッサ設計理論の進化 (パイプライン, スーパースカラー, etc)
>なんてのも大きな要因だね。一時期 RISC で流行った遅延分岐命令なんての
>は、パイプライン化の賜物ですな。
このあたりは勉強不足なので詳しくはわかりませんが
コンパイラ技術や設計理論が向上すれば命令セットにも変更がある、というのはわかります。
0705695NGNG
>>704
まぁ意味は判らんでもないけどな。
ニーモニックって言われたら
同じ転送命令なのにCPUによってたとえばmovとかldという違いがなぜ生じるか
って意味に読めるからな。
0706デフォルトの名無しさんNGNG
CPU毎に違うのは方言だと思えばいいんじゃないかな…と思った
0707デフォルトの名無しさんNGNG
皆さんこんにちは。
かなりむかーし、デバッガでニモニック弄ってたのですが、
今、WIN2000で動くものをアセンブリ言語で作りたいと思った場合
アセンブラの他に何が必要なのでしょうか?
アセンブラはMASM32と言うのをゲトしたんですがPSDKとDDKというのも
あった方がいいのでしょうか?
MicrosoftからはWIN2000用?は落とせないみたいなのですが。
0708デフォルトの名無しさんNGNG
>>707
ヘルプ集
0709デフォルトの名無しさんNGNG
>>707
お手軽に始めたいなら
Delphi 6 Personal (のインラインアセンブラ) + Turbo Debugger
0710デフォルトの名無しさんNGNG
あ、ありがとう。言い忘れました。
フリーで揃えたいのですがDelphi 6 Personal ってフリーでしょうか?

DirectX使うのに、directX-SDK要るというのは分るのですが、プラット
フォームSDKとDDKって何をする時必要なのか分らないのです。
0711710NGNG
Delphi 6 Personal はフリーでした。
0712デフォルトの名無しさんNGNG
test
0713デフォルトの名無しさんNGNG
test2
0714デフォルトの名無しさんNGNG
a
0715710NGNG
Delphi 6 Personal ってCじゃないのね
いろいろ憶える事あるなぁ
0716デフォルトの名無しさんNGNG
BCC+NASMって手もあるよ。
アセンブラだけだとしんどいと思う
0717デフォルトの名無しさんNGNG
>>704 目的を実現するために最適な命令セットを作っているようですね。
なのですが、設計者の趣味(or信じた神様)の違いによるというのもあり。
0718デフォルトの名無しさんNGNG
フリーといえばgcc/gas/gdbとかどうよ。
イバラの道に見えるかもしれないけど、どのみちアセンブラは苦労するから大
した差じゃないさー。でも、gdbは他のIDEものより格段につかいにくいかも...
0719デフォルトの名無しさんNGNG
Delphiをアセンブラ代わりに使う方法
1、D6パーソナルをインストール
2、新規作成->その他->コンソールアプリ
3、begin を asm に書き換える
4、asm 〜 end 間にアセンブラコードを書く
5、F9 で実行する
0720デフォルトの名無しさんNGNG
いきなり、全てをアセンブラで書くのは厳しいという場合は
関数を作るといい
x*3を返す関数の例


{$APPTYPE CONSOLE}

function test(x:Integer):Integer;
asm
 mov EAX,x
 mov EDX,3 ;
 mul EDX ;
end;

begin

writeln(test(3)); //<----関数 test の呼び出し
readln; // コンソールが閉じないよう改行を促す

end.
0721707NGNG
BCC+MASM32+IDE(?)それとW2KVDDとDX8.1bSDK揃えました。(が、まだ物欲満足せず。(たわけ
アセンブリ言語が難しいと言う前にアセンブラがごちゃごちゃで挫けそうです。Cもしかり。
TASMとMASMの日本語マニュアルないときついっす。

0722デフォルトの名無しさんNGNG
ttp://linuxassembly.org/asmutils.html
これのWin32版ほしいなぁ。
0723デフォルトの名無しさんNGNG
俺の場合、はじめて読む〜シリーズとNASMの日本語訳マニュアルで学んだ。
http://guriponn.tripod.co.jp/trans/nasmdoc0.htm
これは途中までだけど人の手による翻訳
http://www.bekkoame.ne.jp/~bero/docj/nasm/nasmdoc0.htm
こっちは機械翻訳
>>707には関係ないかもしれないけど。
もし初学者なら書籍が必要だと思う。
0724デフォルトの名無しさんNGNG
皆さん助言ありがあとう。
書籍は当時買った物が今でも推奨されているのはなんか感慨深いなぁ。
ここで挙がってないみたいだけど、
「8086 ASSEMBLY LANGUAGE」著.西村義孝 SOFTBANK
は良書だと思います。
0725707NGNG
Packed File(600MB)中のファイル一覧を表示させ任意ファイルの出し入れ。
たったこれだけの事をやりたいだけなのに、先へ進めません。
0726デフォルトの名無しさんNGNG
>>725
それはアセンブラでやるようなことではないでしょう
0727707NGNG
>>726
これだけならおっしゃる通りです。僕もそう思います。
他のどの言語でも出来るでしょう。でも僕はアセンブラを覚えたいのです。

Packed Fileですがエンコードされてます。そしてそのロジックは公開されて
いるものでは無いのです。(多分)
プログラムをトレースしてデコード部分見つけたので、これを利用してファイル
出力するプログラムを作りたいのです。
ぶっちゃけエロゲーの吸出ししたいと。(w
0728デフォルトの名無しさんNGNG
>>727
そういう事なら、Delphiのインラインアセンブラを使えばいいでしょう。
デコード部分をアセンブラの関数にして、
入出力とフロントエンドをDelphiで書けばいいと思います。
0729デフォルトの名無しさんNGNG
>>727
susie plug-in にすれば、とりあえずデコード部分を関数化するだけですむな。
デバッグが少々難しくなるが。
0730デフォルトの名無しさんNGNG
age
0731デフォルトの名無しさんNGNG
bcc32の-Sオプションが一番見やすいとはどういうことやねん。
cl(VC6/VC7)はアセンブラ吐けないし、
gasはニーモックと変数名しか吐かないのに
ボーランドはいい仕事してますなぁ
0732デフォルトの名無しさんNGNG
> cl(VC6/VC7)はアセンブラ吐けないし、

は?
0733デフォルトの名無しさんNGNG
多摩板にすごい奴発見!
どうやったんだろ?HPの社員だってよ。

http://kanto.machibbs.com/bbs/read.pl?BBS=tama&KEY=1035908898&LAST=100
55 名前: 日本HP社員 投稿日: 2002/11/17(日) 19:45 ID:JA/HP.9.
毎日、通勤で使うので早く作って欲しいっす。

ところで、私のID、自社名を出してみました。
仕事柄、ちょっとした小技です。
0734デフォルトの名無しさんNGNG
>>732
ほっとけ。
きっと割れ厨だ。
0735デフォルトの名無しさんNGNG
>>734
なんで割れ?
0736デフォルトの名無しさんNGNG
メモリの実行モジュール領域を逆アセンブルし、それを修正しアセンブルってどうやったらいいのかな?
0737デフォルトの名無しさんNGNG
>>735
んなのマニュアル(オンラインだけど)見ればすぐわかる
割れ厨はMSDNのCDなんて落とさないだろ
0738WarezNGNG
MSDNは必須だろ.
0739デフォルトの名無しさんNGNG
>>738
同意。F1で出ないヘルプなんて。

とか思ったがJava使い出してブラウザ開いておくのも大使立てまではないと思った、。
0740デフォルトの名無しさんNGNG
>>736
追記
×どうやったらいいのかな?
○どのツールがお薦めですか?
0741デフォルトの名無しさんNGNG
ところでPentiumってどういう意味?
0742デフォルトの名無しさんNGNG
>>741
486の次だから586にしようとしたんだけど、数値だけだと商標とれなかったり
したので、penta (5の意味。ペンタグラムとかペンタゴンとかのアレ)に、
接尾辞 -ium をつけた合成語。
0743デフォルトの名無しさんNGNG
8bitCPUから続く保証の名
0744デフォルトの名無しさんNGNG
>>731
吐ける
0745デフォルトの名無しさんNGNG
ちなみにPentiumは形容詞。なので、比較的オフィシャルな場面では、
いちいち、ペンティアムプロセッサといった表記をしている。

あと、Intelかどうかはわすれたが、すでにヘクシアムとか、
セプティアムはとられてるというのを聞いたことがある。
0746741NGNG
>>742 >>745
サンクス、あと
Pen1がi586
Pen2-3がi686
という解釈でいいのかな?
0747デフォルトの名無しさんNGNG
>>746
PentiumPro からがi686
P4も基本アーキテクチャ同じじゃないのか?
0748デフォルトの名無しさんNGNG
>>747
あれは別だろう。
CPUIDも違うし。
0749デフォルトの名無しさんNGNG
アセンブラのみでちょっとしたプログラムを組んで、
ゲームボーイエミュレータ(ex.rew)でグラフィックとか文字とかを表示させて
その実行動作を色々試してみたいんだけど、
その辺のやり方を書いたサイトとかってどこかある?
色々探したんだけど、イマイチいいところがなくて…
0750デフォルトの名無しさんNGNG
>>749に追加。
このスレを見るうちに、昔PC-8801FEのZ80アセンブラでプログラムを組んだことを思い出して
最近懐かしくなって、またやりたくなってきました。
0751bloomNGNG

http://homepage.mac.com/bloombloom/
0752デフォルトの名無しさんNGNG
ローテートを使用するのってどういう状況ですか?俺は使ったことないですけど・・
普通のシフト&算術シフトで十分・・

あとAFフラグって桁借り、桁上がりが生じた場合にたつフラグなのでしょうか?
7+8=15とか
27+99=122とか
0753デフォルトの名無しさんNGNG
>>752
多バイトの数値全体をシフトしたい時など、最初の1バイトはシフト、後は
キャリーフラグを通したローテートを使う。

AFフラグは、ニブル(4ビット)毎のキャリーフラグのようなものかな?BCD
演算に使うと書いてあるけど。
0754デフォルトの名無しさんNGNG
>>749
「すずめ愛好会」で検索すれば資料は見つかる
アセンブラでゲームプログラミングの解説サイトがあるのなら、むしろ俺が知りたい
0755デフォルトの名無しさんNGNG
>>747
どうでもいいが、Pentium4をP4と書かれるとおいおい、と思うのは俺だけ?


昔、初代PentiumをP5とか言ってたな、懐かしい
0756デフォルトの名無しさんNGNG
P5 P24T P54C P55C P6 P4じゃないのか?
0757デフォルトの名無しさんNGNG
P6 と言われるとキャラメルキーボードを思い出す。
0758デフォルトの名無しさんNGNG
>>757
かまぼこキーボードじゃないのか?
0759デフォルトの名無しさんNGNG
>>752
実際、たとえばMIPSにはローテイト命令がない(もちろんシフト命令はある)。
C言語にもシフト演算子があってもローテイト演算子はないわけで、なきゃ
ないでそれほど困らないということなのかな。
0760デフォルトの名無しさんNGNG
>>749
昔は解説サイトがいくつかあったんですけど、今はほとんどないです。
この辺でも参考にどうぞ

日本語
http://asattae.virtualave.net/gb/index.html
http://www.geocities.co.jp/Playtown/2004/gbdk_j.htm
http://code-gb.hp.infoseek.co.jp/

英語
http://www.devrs.com/gb/asmcode.php

今はそれなりに詳しく書いたサイトのデータが見つかったら、もしよかったら編集してアップしますね。
0761760NGNG
なんか日本語おかしい(汗
0762デフォルトの名無しさんNGNG
簡略セグメント定義ではだめな場合に完全セグメント定義を使うそうですが
簡略セグメント定義ではだめな場合ってどんな場合ですか?
0763デフォルトの名無しさんNGNG
>>752
AFは加減算後のBCDのアジャスト命令で、9より大きい桁があった時に立つ。
つまり、04hと06hを2進加算すると0Ahになるけど、これをアジャストすると、
アンパックBCDの場合 0100h になって、桁上がりがあるからAFが立つ、
ていうような感じ。

0764デフォルトの名無しさんNGNG
アセンブラやってみようと思い、MASM32というのをダウンしたのですが、コンパイル時点でつまずいています。
CODESEGMENT
ASSUMEDS:CODE,CS:CODE,ES:CODE,SS:CODE
.186
ORG100h

START:
movah,2
movdl,'A'
int21h

movax,4c00h
int21h

CODEENDS
ENDSTART

こんなソースを打ってみて、ml /c test.asm というのは上手くいくんですが、link test.obj でこけます。
ソースはホームページのサンプルを参考に打ったので間違いないと思うんですが、どうしたらうまくいくでしょうか?
0765デフォルトの名無しさんNGNG
ダウン?どこから?
0766manko_chinko ◆GLc2rpKRNM NGNG
linkerになんかオプションつけなきゃならんのでは    
0767デフォルトの名無しさんNGNG
>>764
>.186って・・・
0768754NGNG
ダウンロードは、http://www.movsd.com/masm.htm ここから行いました。
サンプルプログラムは、http://www.d1.dion.ne.jp/~ecb/assembler/assembler00.html このページを参考に打ってみました。

これからガリガリと勉強していきたいとおもってます。
よろしくです。
0769デフォルトの名無しさんNGNG
>>764
Warning no stack segment
というエラー(じゃ無いんだが)が出るとか?

メッセージはよく覚えてないので、微妙に違うかもしれん。

0770デフォルトの名無しさん NGNG
アセンブラの凄さを教えてください。
0771754NGNG
アセンブラを勉強できれば、他の環境でもいいのですが、調べてみたところ、あいにくこれしか判りませんでした。
他に、いい開発環境があったら、教えて頂けないでしょうか?
0772デフォルトの名無しさんNGNG
お願いします。アセンブラの利点を教えてほしいんです。
0773manko_chinko ◆GLc2rpKRNM NGNG
アセンブラじゃないと出来ないことは多い
0774デフォルトの名無しさんNGNG
>>771
アセンブラを勉強するだけなら D6パーソナルでいいんじゃない?
0775デフォルトの名無しさんNGNG
>>773
いいからお前はだまっとれ。
0776 ◆iu9n5o3nSQ NGNG
 
0777754NGNG
色々な方法で何回か試してみたんですが、上手くいきません。
C++とか入手して、__asm { } 内に記述した方が早いでしょうか;;
インライン・アセンブラ とかいって出来るような事が書いてありました
0778もまずにパピコNGNG
ORG 100HってEXEじゃなくてCOMじゃなかったけか。
EXE2BINなりがいるんじゃないの。
0779デフォルトの名無しさんNGNG
>777ゲットおめ    だれかアセンブラのいいところ教えてください。
0780>>778へ。/?くらいやろうなNGNG
$ ml /?
Microsoft (R) Macro Assembler Version 6.15.8803
Copyright (C) Microsoft Corp 1981-2000. All rights reserved.


    ML [ /options ] filelist [ /link linkoptions ]

/AT Enable tiny model (.COM file)     /omf generate OMF format object
/Bl<linker> Use alternate linker     /Sa Maximize source listing
/c Assemble without linking        /Sc Generate timings in listing
/Cp Preserve case of user identifiers   /Sf Generate first pass listing
/Cu Map all identifiers to upper case   /Sl<width> Set line width
/Cx Preserve case in publics, externs   /Sn Suppress symbol-table listin
/coff generate COFF format object file  /Sp<length> Set page length
/D<name>[=text] Define text macro     /Ss<string> Set subtitle
/EP Output preprocessed listing to stdout /St<string> Set title
/F <hex> Set stack size (bytes)      /Sx List false conditionals
以下略...
0781デフォルトの名無しさんNGNG
>>778
link通ってからexe2binじゃなかったっけ?
exeのままでも動いたような記憶があるが。

うーん、最近はnasmで間に合わせてるんで全然覚えてない。
0782デフォルトの名無しさんNGNG
>>778,781
昔のリンカはそうだった。
MASM 6以降からそんな必要は無い。
ml /AT aaa.asm
で一発。
リンクまでやってくれる。

>780でも先頭に出てるだろう。
0783デフォルトの名無しさんNGNG
>>777
とりあえずイソテルニーモニックなインラインアセンブラがすぐ使える
フリーのコンパイラは
Borland Delphi 6 Personal
http://www.borland.co.jp/delphi/
Digital Mars C and C++ Compilers
http://www.digitalmars.com/
使い方はマニュアル見るなり、ぐぐるなりすれ。
0784デフォルトの名無しさんNGNG
>783
ニーモニックが違うけど gcc も加えておいてくれ。
0785デフォルトの名無しさんNGNG
>>777
僕もMASM32でやってみたけど同じくリンカでこけました。
オプションの意味もエラーの意味もわからないので打つ手無し。
TASM&LINKなら通りました。
僕も最近始めたんだけど(707っす)処理系擬似命令の違いで
かなり躓いてます。
プログラマの隠れ里はアセンブラにMASM32使ってるんでTASM
持ってないならそっちがいいかも。
0786デフォルトの名無しさんNGNG
シャープポケコンPC-G850Vを注文できるところ知りませんか?
0787デフォルトの名無しさんNGNG
>>785
オレも同じく。今日はヒマだから、これに取り組んでみるよ。
0788デフォルトの名無しさんNGNG
擬似命令で悩むなら >>719-720の方がいいと思うが?
配置やセッションの知識はC言語使えば判ってくるだろうし
0789785NGNG
>>787
インラインアセンブラは擬似命令通ります?

やりたい事をどうアセンブリ言語で組み立てるのか、アルゴリズムが解らないと
悩むのならわかるのですが、それ以前で躓いてます。
数学習いに行ったら英語で教えられたって感じ?
あちこちサイトまわったけどみんなそんな感じでした。
COMファイル作るのに”ASSUME、ORGはおまじない”ってのは愛嬌だと思えても、
説明無しに擬似命令使(いまく)って、
mov ax,4c00h
int 21h
じゃ、何を教えたいんだろう?と思ってしまう。
0790789NGNG
上の>>787は>>788の誤りですぅ。
0791デフォルトの名無しさんNGNG
16bitリンカ
0792デフォルトの名無しさんNGNG
>>789
目的は?
1、COMの16bitバイナリを作りたい
2、アセンブラ言語を使い、勉強したい

1なら、確かに擬似命令を勉強しないとダメですね。 リンカの概念(セッション等)も必要です

2なら、D6パーソナルのインラインアセンブラで良いと思います。
 擬似命令はDB,DW,および DD 疑似命令しかありませんから悩む必要はありません。
またDelphiはリンカまでを1パスで行いますから、セッションとかのややこしい概念も必要ありません
0793デフォルトの名無しさんNGNG
Delphiでアセンブラを使う例
http://www.nifty.ne.jp/forum/fdelphi/faq/00286.htm
http://www.nifty.ne.jp/forum/fdelphi/samples/00789.html
0794デフォルトの名無しさんNGNG
お前らここ使えそうじゃないですか?

http://www.cpuid.com/
0795デフォルトの名無しさんNGNG
>>794
まぁCPUID書けばいい話だけどね
インテルのマニュアル見れ

>>793
デル厨うぜーよ。
0796デフォルトの名無しさんNGNG
古いけど"はじめて読むMASM"じゃだめなの?>MASMが使えない人
0797デフォルトの名無しさんNGNG
ATIとかPCのグラフィックボードを制御するにはどうしたらいいのでしょうか
0798デフォルトの名無しさんNGNG
>>789
DOSでやるか、ドライバを書くか、NTサービスを登録して I/Oをスルーさせるか
0799デフォルトの名無しさんNGNG
アセンブラの(・∀・)イイ ところを教えてください。
0800デフォルトの名無しさんNGNG
>>799
CPUの命令を直に使える。
ってそのままだが(w
0801デフォルトの名無しさんNGNG

ftp://ftp.microsoft.com/softlib/mslfiles/lnk563.exe
↑これを使えばリンク失敗しないと思われ。
0802デフォルトの名無しさんNGNG
ハードウェア資源を最大限生かせる          のか?
0803789NGNG
ありがとー >>801

>>792,>>796
初心者対象にした「アセンブラでプログラミング」の解説サイトのサンプル
が通らないのです。処理系擬似命令の違いで。
>>764さんが参考にしたサイトでも、NOWSMART ASSEMBLER,MASM32,LASMを紹介
しておきながらサンプルはTASMでやってたりするんです。
>>764のリストですがTASM環境、MASM環境なら通りますが、MASM32では通らな
いのです。インラインアセンブラは問題外ですよね。

これは一例で、ほとんどがアセンブリ言語でプログラミングと称していても
サンプルは処理系依存の擬似命令を使いまくっているわけで、この為
Turbo/Macroアセンブリ言語でプログラミングになっていて、それでいて
その部分を説明していないんだから、何を教えたいんだろう?と思うのです。
0804デフォルトの名無しさんNGNG
ハードウェア資源っつっても今じゃOSの縛りがあるからなぁ(当然だけど)
窓環境とかで使うとすれば画像処理にMMX/SSEあたりを使うぐらいしか思いつかん

スマン、当方エロゲヲタだ(藁
0805デフォルトの名無しさんNGNG
>>303
ある程度しかたないさ。「アセンブリ言語でプログラミングと称し」ている時点で、言語だもん。
「ニーモニックでプログラミング」なら少しはどうにかなるかもしらんし、ならんかも。
0806デフォルトの名無しさんNGNG
ええと>>764のコードには INT 21h があるけど、これって DOS環境でしか動かないんじゃ?
0807764NGNG
>>801
どうもありがとうございます!!
実行ファイル出来上がりました
A とでるだけの処理ですが、
print "A" や printf("A"); System.out.println("A"); なんかよりよっぽど感動がありました。
これから、一生懸命頑張ります!!
0808デフォルトの名無しさんNGNG
>>805
>ある程度しかたないさ。「アセンブリ言語でプログラミングと称し」ている時点で、言語だもん。
その言語の説明もしてないから
>何を教えたいんだろう?と思うのです。
と、言っているのでは。
0809デフォルトの名無しさんNGNG
どもっす。
MASMのデバッガはCODE VIEWですが、MASM32はどうなってるんでしょうか?
オプションで吐くデバッグ情報って処理系依存ですよね?
0810デフォルトの名無しさんNGNG
GBDKでのアセンブル方法を良く知っている人いますか?
もしいれば、とっても簡単でいいのでサンプルを示してもらえませんか?
自分でも簡単なプログラムを組んでアセンブルしたんだけど、
エラー(ORGやらRELやら)が出てきてもその内容が良く分かりません。
どうかよろしくお願いします。
0811デフォルトの名無しさんNGNG
>>810
Cのソースコンパイルするのとなんも変わらないですよ
GBDKのexampleフォルダの中にspace.sってサンプルとmake.batがあるから、それを見てみるといいです
0812764NGNG
昔、X68k 触ってたとき、scd.x とかいう、アドレスレジスタや、データレジスタ、スタックポインタの値が、一目でわかるツールがあったのですが。そういったものは、市販になるのでしょうか?

デバッカがあって初めて、動きをが把握できると思っているのですが・・
ご指導お願いいたしますm(__)m
0813デフォルトの名無しさんNGNG
>>812
ソースレベルデバッガか、アセンブラのデバッグには
あんまり使い易くないと思うのは漏れだけ?

Win32ならTD32がフリー。
http://www.borland.co.jp/cppbuilder/freecompiler/
のTurbo Debugger
0814デフォルトの名無しさんNGNG
>>764
デバッガいいよね。
DOS CONSOLE ならwinは標準でDEBUG.EXE ってのを持ってるよ。
WIN用ならBorlandのTurbo Debuggerってのあるよ。(無料)
http://www.borland.co.jp/cppbuilder/freecompiler/turbodebugger.html
他にも色々あるけどこの辺からどぞ。

話変わって、MAsmEd って、なんか良さげなIDE見つけたんだけど、使ってる人
居ますか? うちじゃ(WIN2000)PROJECTが作れない、CONSOLEが上手く動か
ないんですよぉ。
0815814NGNG
かぶちゃったぁ。
809も僕なわけですがMASM32ならCode View系のデバッガが欲しいとこ。
TASMならTurbo Debuggerでいいんだけど。
0816814NGNG
http://membres.lycos.fr/hitchhikr/MAsmEdMenu.html
書き忘れましたMAsmEdのURLです。誰か検証お願いしますぅ。
0817デフォルトの名無しさんNGNG
LASM体験版ならデバッガもついてくる。
学習用ならこれで十分かも?
0818814NGNG
デバッガで1ドットづつ描画されるのを見た時は感動したなぁ。
RATSでIPLから追っかけてた日々が懐かしかったり。
0819814NGNG
MAsmEDの件は解決しました。
これ状況感知型ヘルプって言うのかな?
わからない擬似命令とか選んでF1でヘルプ見られてとってもグッ!
お騒がせしました。
0820デフォルトの名無しさんNGNG
PC/AT互換機とういうか普通のPCで
x86のout命令使いたいんですが、
ポート表とか解説してあるサイト知りませんか?
0821810NGNG
>>811
どうもありがとうございます。
アセンブラソースを発見し、エミュレータで実行もできました。
ソース内容を見て研究してみます。
また分からないことがあったら質問させてください。
0822デフォルトの名無しさんNGNG
>>820
ひょっとしたら、ここにあるかも
http://www.oadg.or.jp/
0823デフォルトの名無しさんNGNG
>>820
Ralf Brown's Interrupt の "Ports"の所に一覧がある。
http://www.oopweb.com/Assembly/Documents/InterList/VolumeFrames.html
WinHelp版
http://www.vector.co.jp/soft/data/prog/se015027.html
0824820NGNG
>>823
ちょわぁー!
まじサンクス
0825デフォルトの名無しさんNGNG
Z80のすごい人来て

http://gamble.2ch.net/test/read.cgi/slot/1037629418/l50
0826デフォルトの名無しさんNGNG
.code 16 は
「ここから16bitステートのコードを書きますよ」という意味だと思いますが
.textはどういう意味なんでしょうか?
0827デフォルトの名無しさんNGNG
追い出されてやってまいりました
http://www.mit.edu/afs/sipb/contrib/doc/specs/ic/cpu/arm/thumbquickref.pdf
の命令表に
Rd Rs Hd Hs というような英文字がありまして前二つは
ディスティネーションレジスタ、ソースレジスタ、だと思ったのですが
HdとHsのHの意味がわかりません・・

しかも表をみると
RがlowレジスタでHがhighレジスタ、という風にもよめます。
なんでRがlowなんでしょうか・・

教えてください・・


0828デフォルトの名無しさんNGNG
関係無いけどアセンブラリンク
http://www.ueda.info.waseda.ac.jp/~watanabe/Unix/mmx_3dnow/
0829デフォルトの名無しさんNGNG
>>827
ARM7TDMIなどでは、普通
ARMステートではR0-15
ThumbステートではR0-7
を使う

ThumbステートではR8-15をHighレジスタH0-7として一部の命令で使用可能。
これと区別するためR0-7をLowレジスタと呼ぶこともある。
0830デフォルトの名無しさんNGNG
>>826
対象のアセンブラはなんだ?
普通「ここからtextです」ね。なお、textというのは命令のことなのです。
0831」 ■┏┓■Ly酉~~ NGNG
MASM5.0で組んでたらアセンブル中に戻ってこなくなった。仕方なくリセット。
エラーメッセージすら出ないし、アセンブラも落ちることってあるんすね。(DOSなのに……
6.0買えってことなんでしょーか。(´・ω・`)ションボリック
0832デフォルトの名無しさんNGNG
フリーになってmasm32としてでてるよ 
0833デフォルトの名無しさんNGNG
>>831
MASM の最新版が欲しいのなら >>639-640
0834デフォルトの名無しさんNGNG
>>832-833
でもDOSでは動かない罠。
0835デフォルトの名無しさんNGNG
dpmi 使えば動くと思うけどそこまでせんか。
0836デフォルトの名無しさんNGNG
>>835
dpmiだけでは無理だった気がします。
wdosxとかいうのと併用すれば動くかもしれませんが。
0837デフォルトの名無しさんNGNG
そこまでするならLASMかBorland C++ Suite あたりの
安いアセンブラ買ってきた方が早い気もするが。
0838835NGNG
MSサイトにMASM5.0 置いてありました。(w
探せば6.0とかもあるかも。
0839デフォルトの名無しさんNGNG
e**(eaxなど)とaxなどeのつかないものの違いは、具体的にどのようなところなんでしょうか。
0840デフォルトの名無しさんNGNG
>>839
オペランドサイズが違う。
E**は32bit演算、Eが付かないのは16bit演算。

ダッタトオモウ
0841デフォルトの名無しさんNGNG
うえーん.bssセクションに配置キボン( ●Д●)
0842デフォルトの名無しさんNGNG
次スレは アセンブラ・・・(゚д゚)ウマー か?
0843デフォルトの名無しさんNGNG
>>839
.3 2 1 0 :バイト番号
□□□□ eax
■■□□ ax
■■■□ al
■■□■ ah

白いところを使うと思いねぇ。
0844デフォルトの名無しさんNGNG
x86-64では64bit長はraxとからしいですな。
0845デフォルトの名無しさんNGNG
MSでDDKってどうやって落とすの?
誰か教えて!
0846デフォルトの名無しさんNGNG
>>845
http://www.microsoft.com/ddk/
0847デフォルトの名無しさんNGNG
>>846
ありがとうございます。
英語ですか・・・ ちょっと難しい・・・
0848デフォルトの名無しさんNGNG
>>846
そこからは落とせなくなったはずだが。
Win98DDKならこのスレに直リンがある。
0849デフォルトの名無しさんNGNG
EAXの上位16ビットを使いたいなぁ
シフトするのめんどいし
0850デフォルトの名無しさんNGNG
>>849
禿同。
今はパーシャルレジスタストールなんてのがあるので、あまり使いたくないが。

386の頃には欲しかったな。
せめて386でバイトスワップ命令付けといて欲しかったよ。
0851デフォルトの名無しさんNGNG
>>850
P4なら原則としてパーシャルレジスタストールはないよ。
0852デフォルトの名無しさんNGNG
thumbステートではr8からr15を、一部の命令でしか使用できないのは
何故なんでしょうか?そのほうがコードが小さくなるからですか?



0853デフォルトの名無しさんNGNG
Thumbだと命令コードに16bitしか取れないから、単純にレジスタ番号を
指定するためのビット数が確保できなかったからじゃないの?
結局「コードが小さくなるから」ということになるが…。
0854名無しさん@EmacsNGNG
アセンブラってなつかしいなぁ。
PDP-10でガリガリやってた時代を思いだすよ。

ただそれだけです。
0855デフォルトの名無しさんNGNG
>>838
masm5.0ってどこにあるんすか?
引越しのときexe2bin無くしちゃって落とせるんならホスィ
ヒントだけでもキボン
0856855NGNG
すいません自己解決しました
win98ddkに入ってるのね……
しかもファイル名も変わってるし
0857855NGNG
でもこれ6.Xっぽいよー 16bitコードはねられるし(ノД`)
再度キボン
0858デフォルトの名無しさんNGNG
16bitDOS版NASMもあるわけだが…
0859デフォルトの名無しさんNGNG
kansuu:
push{lr}
pop{pc}
という関数を呼ぶばあい
通常は
1.bl kansuuと書くんでしょうが
2.b kansuuでも大丈夫そうな気がしてしまいます・・
だって
kansuuのあたまでlrにプログラムカウンタを保存して,
最後にそれをpcに戻しているわけだから・・
でも実験したら、駄目でした。
2.の場合は、b kansuuの処理を書いた関数の更に上の関数に戻ってしまう・・
なんでなんでしょうか?
0860デフォルトの名無しさんNGNG
ARMの話だよね?

push {lr} は「lrにプログラムカウンタを保存して」じゃないぞ。
lrをスタックに積んでる。その後、pop {pc} でスタックの値をpcに戻すので、
結果的に、kansuuが呼ばれたときのlrの指すアドレスに飛ぶという動作になる。

だから、blだとちゃんとリターンするのにbだと更に一つ上の関数に戻る、という
動作はまったく正しい。
0861デフォルトの名無しさんNGNG
アセンブラの勉強をしようと思っています。
「Cユーザのための実践アセンブラ」(近代科学社)
「8086マクロアセンブラ入門」(技術評論社)
どちらの本がいいでしょうか?
それともアセンブラ経験の無い自分はCASLなどから始めた方がいいんでしょうか?
0862デフォルトの名無しさんNGNG
>>861
x86?
俺は「はじめて読む8086」かな
まぁ今じゃWeb上からでも解説してるところあるし
0863デフォルトの名無しさんNGNG
なんだかんだで定番れすな。
秋葉原にPC関連専門の古書店があったらいいな、と思う今日この頃。
古い雑誌とか読みたいよ
0864デフォルトの名無しさんNGNG
859です。
>ARMの話だよね?
そうです、ごめんなさい。

>push {lr} は「lrにプログラムカウンタを保存して」じゃないぞ。
>lrをスタックに積んでる。その後、pop {pc} でスタックの値をpcに戻すので、
ごめんなさい、滅茶苦茶間違えました。
それでも

b kansuu・・・・・・・・・・1
省略・・
kansuu:
push{lr}  ここでlrをスタックにつみ・・・・2
pop{pc}   ここでpcに引き取る・・・・・・・3

と考えると
やっぱり
3のあと、(1の上の関数じゃなくて)1に帰るのが自然じゃないかなあと思うんですよね・・

>だから、blだとちゃんとリターンするのにbだと更に一つ上の関数に戻る、という
>動作はまったく正しい。
ただしいのだとは思うんですけど・。実際こう動いているわけですし・・
0865デフォルトの名無しさんNGNG
lrの値はbl命令で決まるはずだが?
0866劇的初心者NGNG
<Enter>キーについて教えてください
たとえば会計プログラムで 
"合計金額はですか?"→"500" 500の後に<Enter>キーを
押すと次のコマンドに移るといったようなやり方どうやるんでしょうか?
0867デフォルトの名無しさんNGNG
>>866
...アセンブラで?
0868866NGNG
すいません、書き方変でした。DOS 8086で
プログラム実行したときに下記のような風になるよう、
入力を求められたあと5→3→9と押した後に<Enter>押すと
次の入力に移るようしたいんです。

-------------------------------
Enter Price and Deposit

Input1 (Price) 539 <Enter>
Input2 (Deposit) 1000 <Enter>

The Price of you selected is $ 5.39
The amount you deposit is $10.00

Thenk you. Your Change is $ 4.61
---------------------------------------
0869デフォルトの名無しさんNGNG
>>868
DOS 8086なら >>49 でint 21hあたりを調べてみては?
0870デフォルトの名無しさんNGNG
>>869
漏れにはそういうレベルで悩んでるようには見えないなぁ。
>868は自分で書けるところまで書いてあぷ汁。
0871デフォルトの名無しさんNGNG
つーか、なんでアセンブラなのか ?

オブジェクトサイズをすごく小さくしたいの ?
単なる興味か ?

まさか、C はわからないとかか ?
0872デフォルトの名無しさんNGNG
>>865 :デフォルトの名無しさん :02/12/06 21:42
lrの値はbl命令で決まるはずだが?
ありがとう、この言葉が聴きたかったのかも!
b で飛んでも、lrがかわらないから、アノ動作なのですね!
すっきりした!

0873デフォルトの名無しさんNGNG
揚げてみるテスト
0874デフォルトの名無しさんNGNG
いま「はじめて読む486」読んでるんですが
サンプルプログラムがdos.hとか使うんでサンプル試せないんですよね、
VC1とかに似たような環境ってフリーで構築できませんかね?
0875デフォルトの名無しさんNGNG
>>874
OpenWatcom
http://www.openwatcom.org/
ftp://ftp.openwatcom.org/watcom/
0876デフォルトの名無しさんNGNG
DOS環境下にてのソースです。(MASM)
MOV AL,08H
MOV AH,35H
INT 21H
っていったいなにがおこるのだ!?
0877デフォルトの名無しさんNGNG
35H:割り込みベクトルの読み出し
呼び出し AL 割り込みベクトル番号
戻り値 ES:BX 割り込みベクトル
0878デフォルトの名無しさんNGNG
>>877
ありがとさん
0879デフォルトの名無しさんNGNG
876=878です。
どうやら、タイマーを作っているようです。
でも、システムタイマーを無理やり使用している
ようにしか読めんソースなんだがなぁ〜
ハァ鬱だ! しかも.comファイルだし、.exeにして
デバッガー使おうかな?.asmで15000行超だって。
ぐちってしまった、スマソ
また助けてください。
0880デフォルトの名無しさんNGNG
>>879
MS-DOSの時代は、それが普通です。
漏れはシステムコール使うのめんどくさいんで、
割り込み禁止にして直接読み書きしていたが。

0881デフォルトの名無しさんNGNG
このスレには凄い人達がいるんですね・・・
私?私はマ板で業務系とののしられています。
0882デフォルトの名無しさんNGNG
アセンブラってなんかイイよね
0883デフォルトの名無しさんNGNG
アセンブラは疲れる。
0884デフォルトの名無しさんNGNG
アセンブラはしつこい。
0885デフォルトの名無しさんNGNG
アセンブラは用済み。
0886デフォルトの名無しさんNGNG
アセンブラ素人です。
今簡単な386向けのアセンブラを作ってるんですが、
SHRとかのシフト命令の中身について疑問があります。

shr eax 7  ;このコードをinstコードに変換すると
c1 e8 07  ;になると思うんですが、

2バイト目のビットの使い方で判らないことがあります。
e8を2進数に直すと11_101_000ですが、上位2ビットの
使われ方がわかりません。
e8=11_101_000
下位から、
000=レジスタ
101=SHRを識別するフラグ
11=?←これの使われ方がわからない。

このビットはなんなんでしょうか?MASMとかの実際の変換を見ると、
シフト命令には必ず上位2ビットにそれぞれ1が立ってるみたい
なんですが、どういう仕様になってるんでしょうか?
0887デフォルトの名無しさんNGNG
2byte目の上位2bitはr/m(レジスタメモリフィールド)
例)
C1E807 shr eax,7
C12807 shr dword [eax],7

詳しくはインテルの日本語マニュアルなどを参照
http://www.intel.co.jp/jp/developer/download/index.htm
0888デフォルトの名無しさんNGNG
888get!!
0889886NGNG
>>887
あ、盲点でした。
ありがとうございます。
0890デフォルトの名無しさんNGNG
Z80ニモニックで、Aレジスタの下位4ビットが

OR240
DAA
ADDA,160
ADCA,64

としてASCIIコードでの“0..9,A..F”に変換でき
るってのを暗記してたが既出ですかね…?
#x86ニモニックにもちょっと直せば使える
「そうかDAAってこう使うのか!」とリア厨の時
感動したのが懐かしい…死半世紀前(泣)
0891890NGNG
げ。コピペタブが飛ばされた。鬱死

OR 240
DAA
ADD A,160
ADC A,64
0892デフォルトの名無しさんNGNG
(´∀`(⊂(ΦωΦ⊂ )⊃=3
 ↑
 >>891
0893」 ■┏┓■Ly-┛~~~ NGNG
うちの98ではnasmの0.98.35でアセンブルできない……
nasm -oobjexe.obj -fobj objexe.asm
これじゃいかんのかね。
0.97ではうまくいくんだけど、
これからマニュアル読むyo! optionが変わったのかもしれないし
0894デフォルトの名無しさんNGNG
>>893
とりあえず、どの「98」なのかわからん(藁
0895デフォルトの名無しさんNGNG
>>893
nasm 0.98.35にはjmp/call far labelがエラーになるというバグ有り
CVS版をコンパイルしよう
0896」 ■┏┓■L_酉~NGNG
>>894 PC9821ね、スマソ
>>895 どうもです。今、汎用でフリーのアセンブラを9801/21のDOSで
試してるんだけど結構動きますね。
AT機WIN上の98エミュレータでも動いたり(遅いけど)、微妙に驚愕っすよ。
0897デフォルトの名無しさんNGNG
最初にaddとかmovの命令をつんだMPUって何?
0898デフォルトの名無しさんNGNG
>>897
4004かな?8008?
0899デフォルトの名無しさんNGNG
>>898
少なくとも 8008 より 4004 の方が早いと思うが。
0900デフォルトの名無しさんNGNG
最初に好きとか嫌いとかいいだしたCPUって何?
0901デフォルトの名無しさんNGNG
わらえばいいのか?
0902デフォルトの名無しさんNGNG
スレ違いなのかもしれませんが・・
厨房プログラマです。
私はプログラム書くとき、コメントとか改行をこまめに入れる癖が
あるのですが、私のプログラムを読んだ同僚厨房から
「コメントや改行たくさん入れるのはパフォーマンスが
悪くなるんだぞ」
と馬鹿にされました。この厨房の間違いをアセンブラレベルで
証明しようと「パターソン&ヘネシー」とかひっくり返して
探したんですがいい例がみつかりません。
自分が厨房なのは百も承知なのですが、もっと厨房なやつから
ばかにされたことが悔しくてなりません。
どなたか、私のかわりのにこいつの間違いを正してやってください。
それともやっぱり私の方がもっと厨房なのかな?
0903デフォルトの名無しさんNGNG
中学生でパターソン&ヘネシー
読んでるの?んなわけないよな
読んでてそんな質問するなら、1万どぶに捨てたようなもんだ
0904デフォルトの名無しさんNGNG
>>900
それなんの歌だっけ?
0905デフォルトの名無しさんNGNG
>>904
ときめものことが言いたいのか?
0906デフォルトの名無しさんNGNG
>>900
HuC6280
0907デフォルトの名無しさんNGNG
>>902
昔のbasicの時代の遺物でなけりゃ、奇妙な勘違いだね。
同じソースに無駄にコメントや改行入れてコンパイルして、完全に同じobjが作られる事を見せてみたら?
0908デフォルトの名無しさんNGNG
>>907
ちがうだろ。今でもインタプリタな言語(今風だとスクリプト言語)だったら遅くなる。
コンパイラが実行形式(Javaのバイトコード含む)吐く言語なら遅くならん。

だが、インタプリタであっても初回の解析時に構文解析木やバイトコードに変換する
処理系が多いから、ループや関数の二回目以降の実行速度は変わらなくなる。
0909907NGNG
え?アセンブラのソースの事じゃないの? スクリプトならそりゃ別の話だね
0910908NGNG
>>909
>>902は「アセンブラレベルで証明したい」と書いてるだけで、
そのプログラムがアセンブリ言語で書かれてるとは書いてないが?

アセンブリ言語のソース読める奴が、アセンブラ/コンパイラ型の言語で
コメントや改行増やすことで遅くなるなんてアフォな勘違いするとは思えない。
0911デフォルトの名無しさんNGNG
>>910
確かにね…。

その発言者が「どの段階で」遅くなるから云々
なのかがわからないとなんともかんとも。

一応自分の知ってる範囲でモノを述べると、
M80やMASMはコメント&改行が増えると明らかに
アセンブル速度は低下するが、その幅は
マクロを多用した場合の比ではなく誤差の範囲(数%)。
BASIC(N88やMSX)では最初の1回目の実行に
関しては僅かに遅く感じるが、これも誤差の範囲(数%)。
PerlとJavaの場合は数万行ものソースでも食わさないと
コメントの有無による違いがほとんど体感できない。
Rubyについては常用してないので何もいえない。
C/C++の場合はプリプロセスに付いてのみ負荷が掛かってるものと
思われるが、今時のマシンでは気にする暇も無く処理終了w
#最適化フェーズのほうがよほど負荷掛かってると思うぞ。
0912デフォルトの名無しさんNGNG
;>>950
;今度こそ立てろよ。
0913男NGNG
突然ですが、
アセンブラってXeon、P4サポートしているのあるんですか?
0914デフォルトの名無しさんNGNG
8086でよぉ、debugでさぁ、コメントってぇ、入れることで禁のぉ?
0915907NGNG
>>914
DOSの? とりあえず出来ないって答えになるけど
0916デフォルトの名無しさんNGNG
>>913
聞いた事ないが…。
いざとなればdbでコードを埋め込む技がある。
0917デフォルトの名無しさんNGNG
>>913
MASM 6.15 なら対応してるんじゃねーの?
0918デフォルトの名無しさんNGNG
>>913
MASMはいまや無料配布(DL可)だよ…。
Windows??DDKとかって奴に入ってる。(英語版)
で、最新のCPUにはパッチを当てて対応する。
0919デフォルトの名無しさんNGNG
>>911
ツーか、ネタだろ。
そんなことも説明できない厨房が「アセンブラ」スレなんか見るわけないと思うぞ。
0920デフォルトの名無しさんNGNG
パッチ当てだと 6.14 にしかならんわけだが。
0921デフォルトの名無しさんNGNG
そういえば今日本屋で見かけた本にも MASM 6.14 の入手法は書いてあったが、
6.15 の入手法は書かれていなかったな。
0922902NGNG
>>907,908,911,919
説明たりませんでしたね。
>>911
さんのカキコがイメージしていた回答に近いです。
ありがとうございました。
私はロータスのスクリプトを使ったアプリ開発をやっています。
当然コンパイラや中間コードをはくインタプリタは念頭にありません。
GUIのアプリで、長くて1000ステップくらいのコードによる処理
をイメージして質問させていただきました。
インタプリタがどういうふうに構文解析をするのかまで理解が
行き届かなかったのでこういった形で質問をさせていただきました。
お騒がせしました。
0923デフォルトの名無しさんNGNG
>>922
N88-BASIC 辺りだと、

110 FOR I=1 TO 10000
120 ホゲホゲ
130 NEXT I

より

110 FOR I=1 TO 10000 : ホゲホゲ : NEXT I

とした方が速いつーのが有ったが。。
コメント無し&マルチステートメントで速度を稼ぐなんて
20年前の話だね(w
0924デフォルトの名無しさんNGNG
>>923
その速いつー話で、いやに仕変しにくいソースが
どれほど転がっていたか...
最後に担当者居なくなって、派遣社員の漏れが保守されられたよ。
0925デフォルトの名無しさんNGNG
仕変?仕様変更?
0926924NGNG
>そういえば今日本屋で見かけた本にも MASM 6.14 の入手法は書いてあったが、
>6.15 の入手法は書かれていなかったな。

http://msdn.microsoft.com/vstudio/downloads/tools/ppack/download.asp
で適当にvcpp.exeかvcpp5.exeをDLしてコマンドプロンプトで/C オプション
つけて解凍してみそ。
0927デフォルトの名無しさんNGNG
>926
あなたすごいです。
横からですけど、いただいまた^^
自分も6.15探していたので、かなりありがたいです^^
本当にありがとうございます!
0928デフォルトの名無しさんNGNG
vcppとvcpp5の違いって何?
0929@NGNG
Service Pack 4とService Pack 5の違いw
0930デフォルトの名無しさんNGNG
>>929
サンクスって、何でvcpp4じゃないんだろうと思ったり…
0931デフォルトの名無しさんNGNG
突然ですけど、
MASMを使ってwindows9x,2000,ME,XP等で動作するTCP/IPを使って
通信をサポートするDLLを作りたいんですけど、
192.168.1.1(クライアント)から192.168.1.2(サーバー)へポート1024でhelloと送信するプログラムの
クライアントがわの作り方を調べたいんですけど、
作り方を説明してるようなサイトを知っていたら教えてもらえないでしょうか。
サンプルソースを持ってる方いたらもらえないでしょうか。
0932@NGNG
>>930
サンクスってなんだ?
コンビニか?
0933デフォルトの名無しさんNGNG
>>931
何故にアセンブラで?
高級言語でソケット使えば簡単にできる物を
わざわざアセンブラで苦労して作る必要があるの?
0934デフォルトの名無しさんNGNG
>>933
其処にアセンブラがあるから
0935931NGNG
1つ、アセンブラが好きだから。
2つ、ファイルサイズを小さくしたいから。
3つ、高級言語では俺の力ではゆうずうが聞かないから。
4つ、お遊びで、独自言語(コンパイラ)を作ってるから、それにも使いたいので。
などなど
意味わかんない質問してスミマセン。
0936931NGNG
>>934
YES
0937デフォルトの名無しさんNGNG
自己満足。なんかすごそうだろ。俺アセンブラ使って作ったんだぜーって(藁
0938937NGNG
実際はただの無駄骨なだけなんだけどな(激藁
まあ無知なうちに一回ぐらいやっておくと二度と馬鹿なことはしないでしょ。
0939デフォルトの名無しさんNGNG
>>937
無意味な煽りは、やめなはれ
ここはアセンブラのスレで>>931の書いてる事に落ち度は無い
0940931NGNG
>>937
すごいことだと思ってません。
たとえばアセンブリ言語アセンブラを作ったとしても、
それは1つ1つの命令をデバックすれば作れるものだから、
すごいというより、ただの根気と初心者以上の知力があれば出来るかと思う。

>>938
はい、そうですね。
自分にもっと力があればこんなことはやろうとしないかも知れませんね。


お願いです、どなたか>>931の質問に答えてもらえないでしょうか。
0941931NGNG
あ、トランスポート層のプロトコルはUDPでもいいです。
0942デフォルトの名無しさんNGNG
>>931
糞2chなんかでは聞かない方がいいよ
ヴァカが多いから
0943デフォルトの名無しさんNGNG
探せば C で書かれたサンプルソースは見つかりそうなものだが、
アセンブラのはそう簡単には見つからんだろう。
それから C + Win32API で書かれているものを ASM + Win32API に
書き直したところで、ファイルサイズが劇的に減るとは思えない。
0944931NGNG
>>943
知らないなら書くなやカス
WinSock逆アセして分かったよ
0945デフォルトの名無しさんNGNG
>>943
だから文盲は出てこなくていいって。
0946931NGNG
>>944
おぉそんなものがあるんですか、早速逆アセンブラして、読んでみます^^
たすかります〜^^!

>>945
ありがとうございます^^;
ペコ↓m(_ _;)m↓ペコ
0947デフォルトの名無しさんNGNG
おい、↓の>>1!このスレの 1をそのまま使うんじゃねぇ!!

アセンブラヽ(`Д´)ノモルァ
http://pc3.2ch.net/test/read.cgi/tech/1040297337/
0948デフォルトの名無しさんNGNG
931の目的のためにWinSockを逆アセするヤツはただの馬鹿。
0949デフォルトの名無しさんNGNG
>>931
取りあえず、C で書いて、アセンブラソースに落として、それを改良するのが手っ取り
早いと思う。
0950デフォルトの名無しさんNGNG
>>949
TCP/IPのドライバを書け?と、、
call命令しらない房やかな?
0951デフォルトの名無しさんNGNG
普通にWinSockを呼び出せばいいだけのことじゃないのか?
>>949もそういう意味で書いていると思ったが。
WinSockをCから呼び出すサンプルソースは探せばすぐ見つかるから問題はないだろう。
>>931がドライバも書きたいと思っているのなら止めはしないが。(w
0952デフォルトの名無しさんNGNG
ファミコンのソフト組んだ事ある人いませんか?(65C02?)
0953名無しさん@EmacsNGNG
>>952
もう10年以上前なんで忘れてっけど。
6502ですた。たすかa,x,yの3つしかレジスタが
なかた様な…
0954デフォルトの名無しさんNGNG
スーパーファミコンのCPUは65816というものでした。これは6502の16ビット版
とも言うべきもので、6502のエミュレーションモードも持っている変態CPUです。

アキュムレータも8ビットのA,B二本(但しBは交換専用)で使うか、16ビットの
C一本で使うかの選択ができます。16ビットCPUなのにレジスタがとても少なく、
6502と同様ゼロページを積極的に活用する事でそれを補っています。

スーパーファミコンのソフトはほとんどアセンブラで書かれていたというから
驚きます。
0955931NGNG
逆アセンブラしたらcall KERNEL.506ってコードがあるんですけど、
これはkernel32.dllを呼び出してるんですか?
引数は506って意味ですか?
0956931NGNG
あと、逆アセンブラみなさんはなにを使ってますか?
フリーの使いやすい、お勧めなどあったら教えてください。
0957デフォルトの名無しさんNGNG
nasmについてくる奴
masmについてくる奴
bcc32とかボーランドについてくる奴
VCについてくる奴
GNU binutil の objdump
以上
0958デフォルトの名無しさんNGNG
>>953
256 個もレジスタがあるのに..
0959デフォルトの名無しさんNGNG
diswinのソースが少し勉強になった
0960デフォルトの名無しさんNGNG
>>955
kernel.dllの序数506のエントリを呼んでる。
番号→名前の調べ方は忘れた。.def見れば書いてあった様な気がするが。
ちなみに、引数はそんな所に出て来ない。
0961デフォルトの名無しさんNGNG
>>958
Apple][でマシン語のプログラムを組む時、Apple-Basicがゼロページを
食い荒らしていて、結構面倒かった記憶がある。
0962デフォルトの名無しさんNGNG
ところで次スレ建てなくて良いのか?
0963949NGNG
>>950
何故にいきなり「ドライバ」が出てくるのか ?
何故に call 命令しらないと言われるのか ?

2ch はわからんことだらけだよ。
0964デフォルトの名無しさんNGNG
>>963
そのうち「これが電波なんだ」ってわかるようになるよ。安心すれ
0965デフォルトの名無しさんNGNG
>>962
>>947
0966931NGNG
>>960
あの〜、うちのPCはkernel.dllがないんkernel.dllですけど・・・・
あるのはkernel32.dllだけなんですけど??
どしてかな??
あ!そこに引数あるのはINVOKE命令だった^^;
callの時はpushでやるんか・・・・

>>949
あの、質問なんですけど、どこからどこまでCで書いたらいいって、いってるんですか?
1から全部書けと言うなら、本当にドライバも書けと言ってるようなものですよ・・・

>>957
masmについてくる、逆アセンブラって名前なんでしたっけ?
0967デフォルトの名無しさんNGNG
>>966
> masmについてくる、逆アセンブラって名前なんでしたっけ?
masm持っていれば分かるでしょ。
それともMXでも使う気ですか(ワラ
0968デフォルトの名無しさんNGNG
>あの〜、うちのPCはkernel.dllがないんkernel.dllですけど・・・・
あるのかないのかよくわからん…
0969デフォルトの名無しさんNGNG
>966
ドライバを書くためにWinSockを逆汗してるんだろ?
そうじゃないなら、素直にWinSockを使えよ。
WinSockの使い方が分からんのなら、こことか見とけ。
http://www.nakka.com/lib/inet/
0970931NGNG
>>968
あw意味分かりませんね^^;
すいません・・・
俺のPCにはkernel.dllがなくて、kernel32.dllしかないといいたかたのです。
ごめんなさい。

>>967
DUMPPEなんですかね?
MXっていっても、MASMってフリーですよね。

>>969
ドライバまでは書きたくないんですけど(書けない)、
そのぎりぎりのところまで掘り下げて、やってみたいんです。。
後、http://www.nakka.com/lib/inet←ありがとうございます、参考にさせて頂きます。

>>ALL
お世話かけてすいません。
そしてありがとうございます。
0971デフォルトの名無しさんNGNG
>>966
> あの、質問なんですけど、どこからどこまでCで書いたらいいって、いってるんですか?
> 1から全部書けと言うなら、本当にドライバも書けと言ってるようなものですよ・・・

お前アフォか ? なんでアセンブラ → ドライバまで書かんといかん と短絡的に考えるんだ ? (>>950 と同類のデムパか ?)

C だろうが アセンブラだろうがどこまで書くかは、プログラマ次第。
アセンブラはドライバまで書けるけど、書かないといけないわけじゃないぞ。

1. winsock 使って、connect()/send() の世界でやる。
2. winsock も実装してしまい、世界一効率的な TCP/IP の実装を目指す。
3. ドライバまで、自作して NIC の機能全てを使い切る。

どれでも好きなのを選べよ。
0972デフォルトの名無しさんNGNG
厨房は気が短い。
馬鹿は一生馬鹿のまま。
0973デフォルトの名無しさんNGNG
>>972
自己紹介か ?
0974962NGNG
>>965
あ、それなんだな。気づかんかった。
0975931NGNG
>>971
2番を目指したいですね。。ファイナルアンサー!!

>>973
ワラタ
0976デフォルトの名無しさんNGNG
>>975
> 2番を目指したいですね。。ファイナルアンサー!!

まあ、先は長そうだけど、頑張れ。
0977デフォルトの名無しさんNGNG
TRY PC別冊って内容的にどうかな?
0978デフォルトの名無しさんNGNG
>>977
糞
0979デフォルトの名無しさんNGNG
>>977
最初のとっかかりとしては悪くはない。
0980デフォルトの名無しさんNGNG
CP/MのWIN2000エミュレーターってありますか?
あれば、教えていただきたいのですが!!
0981デフォルトの名無しさんNGNG
CP/Mで Win2000をエミュレートするの? それは無理
0982デフォルトの名無しさんNGNG
pen3/セレ上でのPen4[SSE2]のエミュれーターありますか?
0983デフォルトの名無しさんNGNG
>>980
まあ言いたいことは一応(^^;
ファイルシステムまでコミでCP/M80を動かす方法は、自分は知らない。
でもMSXPlayer+MSX-DOSで、ほぼCP/M80互換になるんじゃ?(メモリ空間狭いが)
# MSX版 M80.COM その他まだ持ってるなぁ。
0984980NGNG
>>981 ゴメン書き方が悪かったみたいです。
 要は、Win2000上で、CP/Mファイルをアセンブルしたいわけで・・・・
>>983 以前にWin95,98上でエミュレートするのは持っていたのですが、
 2000上になると、FCBエラーで動作しないわけで、ただコンパイルしたいだけ
 なんですが、.A86→.H86 自分で作るしかないのかなって作れるかどうかは不安!!
0985デフォルトの名無しさんNGNG
>>984
そういうことか。
DOS用でもFCB互換コール使わないものがあった様な気がする。
どんなのだったかなー。全然記憶にねーよ。
0986デフォルトの名無しさんNGNG
Win2k上のDOSemulator上のCP/Memulatorでアセンブルするというのはどうでしょう?
0987980NGNG
>>986
その手がありましたか! 一度やってみます。
ありがとう!
レス数が950を超えています。1000を超えると書き込みができなくなります。