■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■
アセンブラを知らない名無しさん
1 名前: しーげんがー 投稿日: 2001/04/22(日) 01:09
なんでも聞いてみ。


2 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 01:13
アセンブラって、新しいブラジャーのことですか?


3 名前: 名無しさん 投稿日: 2001/04/22(日) 01:15
>>2
オモシロ


4 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 01:18
8086でファイルマッッピングみたいな事する
方法があったら教えてください。DOSでも
char *p = mmap(open("巨大file.txt"));
memcopy(p, "ファーファ", strlen("ファーファ"));
みたいなことしたいんで。


5 名前: 投稿日: 2001/04/22(日) 01:23
MappingIn8086メソッドを使えばたやすい。
MappingIn8086(任意の式


6 名前: 4>5 投稿日: 2001/04/22(日) 01:27
それはどこの関数ですか?
それと、アセンブラは?


7 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 02:16
AXはALとAHに別れますが、
なんでEAXはAXともう一つに別れないのですか?




8 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 02:20
EAとAXじゃ判りにくいから。って漫才コンビじゃない!!


9 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 02:24
インテルに聞け>7
ハァ?>8


10 名前: ttt 投稿日: 2001/04/22(日) 15:10
11025kHz,16bitで人の事を一分間録音するのに必要なメモリ容量は?
   
        いくらなんでしょうか?


11 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 15:49
Z80で割り算の仕方忘れちゃったので
サブルーチン作ってください。
B / C = H ... L
入力   出力
レジスタは呼ぶ前に全部退避しますんで大丈夫です

今晩とりに来ますんでよろしくお願いしま〜す


12 名前: 11 投稿日: 2001/04/22(日) 17:28
すいませんあと掛け算サブルーチンもついでにお願い
えーと
B * C = HL
って感じでね。これも夜にいっしょにとりに来ま〜す。
あ、あと割り算も掛け算も負の考慮はしなくてもいいですよ〜

よろぴく ♥


13 名前: 投稿日: 2001/04/22(日) 18:05
氏ね


14 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 18:23
演算子も定義出来る強力なマクロ機能のある
あせんぶらだったら・・・ってそれじゃ高級言語
使った方が早い?


15 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 18:27
>11
忘れてるだけなら思い出すと思うけど、
シフトして足す又は引くだけじゃないか。
「取りにくるからやっててね」って・・・


16 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 19:01
UNIX上でhello assemblerとアセンブラで表示するにはどうしたらいい?


17 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 19:33
UNIX上のアセったってプロセッサなによ?


18 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 19:40
>>11 2chに書くときはもう少し煽って厨房を憤らせなきゃ。
書けるようなのいないだろ! とか。



19 名前: 4>1 投稿日: 2001/04/22(日) 19:45
MappingIn8086メソッドってなんなんですか?
何かのライブラリ関数でしょうか
教えてください。


20 名前: 11 投稿日: 2001/04/22(日) 20:11
あーまだ出来てないですね。よかった

あの、仕様変更お願いします。
BCとHLはいいんですけど、
Aとかは使わないでくださいね
なんかキャリーフラグとかその辺全部
サブルーチン側で退避しといてください。

じゃお願いしますネ ♥


21 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 20:16
>>18
いや、だんだん育ってきたようだぞ


22 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 20:19
ヒッキー板の奴が、プログラマ板と間違えて書き込んでいる模様。



23 名前: 11 投稿日: 2001/04/22(日) 22:40
あれ?

あのーとりに来たんですけど、まだですか?
一応納期が明日の昼なんで、午前中には試験まで済ませたいんですよ

とにかく、仕事はきっちりお願いしますね。
それから中間報告くらいはお願いしますよ、ほんとに


24 名前: C厨房 投稿日: 2001/04/22(日) 22:57
ひとつ、初心者な質問をさせていただきます。
私は2年前ぐらいからC言語をコツコツと勉強しておりますです。
アセンブラは全く触る機会がなかったのですが、アセンブラは他の言語と
比べて難しいのでしょうか?


25 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 22:59
むしろ簡単です。ただ煩雑なだけ>24


26 名前: >24 投稿日: 2001/04/22(日) 23:32
そら機械語に近いぶん難しいぞ。漏れなんかC言語はそれなりに分かる
がアセンブラはさっぱりじゃけん。機種依存激しいし。


27 名前: 投稿日: 2001/04/22(日) 23:36
As a result.Assembler is not important. Only C language.


28 名前: デフォルトの名無しさん 投稿日: 2001/04/22(日) 23:39
Cより簡単>24
ただ8086のsegmentとか使うとすると面倒臭いかも
68kや386以降のリニアなやつだと楽。
機種依存は当然・・>25



29 名前: ああ、今気づいた・・ 投稿日: 2001/04/22(日) 23:44
笑うところだったのか<機種依存激しい


30 名前:   投稿日: 2001/04/23(月) 00:08
そう藁うとこ。


31 名前: 11 投稿日: 2001/04/23(月) 02:35
あれー
発注してた関数はどうなったんですか?

・・・朝までまだ時間があるとはいえ、ちょっと仕事遅くないですか?


32 名前: デフォルトの名無しさん 投稿日: 2001/04/23(月) 02:37
11はコピペ


33 名前: デフォルトの名無しさん 投稿日: 2001/04/23(月) 10:01
>>11 が、この後どうなるか、密かに期待してたり。



34 名前: はてな? 投稿日: 2001/04/27(金) 19:45
アセンブラってナニ?



35 名前: デフォルトの名無しさん 投稿日: 2001/04/27(金) 20:00
ブラジャーの一種です。


36 名前: デフォルトの名無しさん 投稿日: 2001/04/27(金) 20:13
C カップはありません。


37 名前: 名無しさん 投稿日: 2001/04/27(金) 20:15
アセンブリのブリブリブリッコがアセンブラ。


38 名前: デフォルトの名無しさん 投稿日: 2001/04/27(金) 21:08
センスが同一レベルなので
34=35=36=37
確定しました


39 名前: デフォルトの名無しさん 投稿日: 2001/04/28(土) 02:17
>>38
ダウト


40 名前: 34 投稿日: 2001/04/28(土) 09:12
>>38
34!=(35=36=37)



41 名前: マジレスさん 投稿日: 2001/04/28(土) 20:51
 アセンブラの勉強をしたいのですが、
どういうソフトを使えば良いですかね?
なにぶん、高校のガキなもんですから
プログラマーの皆さん、お手やらわらかにお願いします。


42 名前: デフォルトの名無しさん 投稿日: 2001/04/28(土) 21:25
勉強だけしたいならCASL
実用ならVCでインラインアセンブラとか


43 名前: アセンブラを知らない厨房たち 投稿日: 2001/04/28(土) 22:23
アセンブルが終わってぼくらは生まれた
アセンブラを知らずにぼくらは育った


44 名前: マジレスさん 投稿日: 2001/04/28(土) 22:45
>>42さん
VCでインラインアセンブラというのは
VisualCのソフトでやるという事ですか?
捉え方が間違っていたら、ご指摘ください



45 名前: デフォルトの名無しさん 投稿日: 2001/04/28(土) 23:19
おまえら少しは自分で調べろ


46 名前: デフォルトの名無しさん 投稿日: 2001/04/29(日) 07:03
VCでインラインアセンブラをかじったんですが、
VC5じゃMMXの命令は使えないんですか?
6でSP4以降じゃなきゃダメ?


47 名前: デフォルトの名無しさん 投稿日: 2001/04/29(日) 09:07
VTUNEならオケーです


48 名前: デフォルトの名無しさん 投稿日: 2001/04/29(日) 23:41
>>12
LD A,C
OR A
RET Z
LD HL,0
LD E,B
LD B,C
LD D,0
LOOP: ADD HL,DE
DJNZ LOOP
RET


49 名前: デフォルトの名無しさん 投稿日: 2001/04/29(日) 23:46
VC5のインラインアセンブラでもMMXは使えたと思う。
昔某メガデモのソース読んでてMMX使ってた記憶がある。


50 名前: 48 投稿日: 2001/04/29(日) 23:52
さっきのは実用的じゃないな。
>>12
B * C = HL
LD HL,0
LD D,0
LD E,B
LD B,8
LOOP: RR C
JR NC,SKIP
ADD HL,DE
SKIP: SLA E
RL D
DJNZ LOOP
RET

たぶんこれでOK。
HD64180やR800だったら乗算命令があるんだけどな。


51 名前: 汗を吸収するブラジャー 投稿日: 2001/04/29(日) 23:58
windows上でアセンブラ使って、
プログラムの勉強してみたいのですが
どういう風にすればいいのでしょうか?
helloworld くらい表示できるようになりたいです。

windowsなので、
DOS窓は開きたく無いです。
あと、ハンドアセンブルもしたく無いです。
VC++の開発環境が有るのでデバッグだけはできます。

ネタっぽいですが、いちおうマジレスきぼんします。



52 名前: 48 投稿日: 2001/04/30(月) 00:02
仕様変更があるのか?
めんどくさ。もう書かん。
さよなら。


53 名前: デフォルトの名無しさん 投稿日: 2001/04/30(月) 01:04
>>52
氏ね


54 名前: デフォルトの名無しさん 投稿日: 2001/04/30(月) 01:59
>>51
どういう風に表示するかだけど。俺も昔やったことあるけど
TurboAssemblerで直接作ったから、VCはよく知らん。

単にMessageBoxで表示したいなら、pascal的にpushして
apiを呼ぶだけ。最後はExitProcess APIを呼べばよかったけ
かな。

メッセージポンプなんかもマトモに書こうとすると氏ぬぞ(w



55 名前: デフォルトの名無しさん 投稿日: 2001/05/01(火) 19:27
8080系で10進4桁の減算を実行するアセンブラを書いてるのですが、うまくいきません。
模範回答例を教えてもらえませんか?


56 名前: デフォルトの名無しさん 投稿日: 2001/05/01(火) 20:32
>>51
まず、Windowsが要求するスタートアップルーチンを書いてください。


57 名前: デフォルトの名無しさん 投稿日: 2001/05/01(火) 21:03
>55 100進2桁にした方が便利かもしれないよ


58 名前: デフォルトの名無しさん 投稿日: 2001/05/02(水) 00:21
>>51
こんなんじゃだめ?
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
  {
  char windowTitle[] = "Hello Window";
  char messageString[] = "hello";

  _asm
   {
   push  0
   lea  eax, DWORD PTR windowTitle
   push  eax
   lea  eax, DWORD PTR messageString
   push  eax
   push  0
   call  DWORD PTR MessageBoxA
   }

  return (0);
  }


59 名前: デフォルトの名無しさん 投稿日: 2001/05/03(木) 00:32
コンパイルが面倒だけど、いちおう実行できた。


.text

xor %eax,%eax
mov $message,%ebx
push %eax
push %ebx
push %ebx
push %eax
call _MessageBoxA@16
push %eax
call _ExitProcess@4

message:
.ascii "Hello world.\0"


60 名前: デフォルトの名無しさん 投稿日: 2001/05/03(木) 00:54
>>55
8080系って? 8085でも使ってるの?
ちゃんとCPU名書かないとレス付かないと思うよ。


61 名前: デフォルトの名無しさん 投稿日: 2001/05/03(木) 02:32
>>51
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/5989/index.html
VCとMASMでのサンプルがあるよ。


62 名前: デフォルトの名無しさん 投稿日: 2001/05/03(木) 13:30
>>56
そりゃ 16bit アプリだけだろ。


63 名前: デフォルトの名無しさん 投稿日: 2001/05/04(金) 02:22
>>54
TASM なら push しなくても call 関数名 stdcall,引数1,引数2 ...
で済むと思われ


64 名前: 先生、分かりません 投稿日: 2001/05/04(金) 07:14
アセンブラって何ですか?


65 名前: デフォルトの名無しさん 投稿日: 2001/05/04(金) 11:20
ネタ?
時代?


66 名前: デフォルトの名無しさん 投稿日: 2001/05/04(金) 11:23
工場で車を組み立てる人です
ちなみに、コンパイラは、編集者
インタプリタは通訳者です。


67 名前: デフォルトの名無しさん 投稿日: 2001/05/04(金) 11:44
チャイナは先行者です。


68 名前: デフォルトの名無しさん 投稿日: 2001/05/27(日) 16:37
http://www.interq.or.jp/kansai/kanae/asm.htm


69 名前: デフォルトの名無しさん 投稿日: 2001/05/29(火) 13:43
MACファイルからインクルードして
アセンブラ組んでるんですが、
$$〜〜と
最初に記述しますが、
$$はどういう意味なのでしょうか?


70 名前: デフォルトの名無しさん 投稿日: 2001/05/29(火) 14:08
>>69
通貨単位

#「トライガン」


71 名前: デフォルトの名無しさん 投稿日: 2001/05/29(火) 23:38
>>70
ダブドルと読むらしい
って、MACは知りません。m(_ _)m


72 名前: デフォルトの名無しさん 投稿日: 2001/05/30(水) 00:35
>>71
ワンピースならドルドルとかいってるだろう多分


73 名前: デフォルトの名無しさん 投稿日: 2001/05/30(水) 00:37
レベル低すぎやしないか?読んでて悲しい。


74 名前: >12 投稿日: 2001/05/30(水) 01:23
>>12
遅レスだが、これでいいのでは?
B*C=HL

LD DE,0
LD HL,0
LD E,B
AND A
LOOP1: LD A,C
CP 0
JP Z,OWARI
SRL C
JP NC,LOOP2
ADD HL,DE
LOOP2: SLA E
RL D
JP LOOP1
OWARI: END


75 名前: デフォルトの名無しさん 投稿日: 2001/05/30(水) 05:25
>>74
ツッコミどころ満載ですな


76 名前: >74 投稿日: 2001/05/31(木) 00:02
合ってるね。
他のやりかたもありそうだけど


77 名前: デフォルトの名無しさん 投稿日: 2001/05/31(木) 02:35
>>74
突っ込み1) LD DE,0 は LD D,0 で良い
突っ込み2) AND A に何の意味が…
突っ込み3) CP 0 こそ AND A にしとけ
突っ込み4) JR でなく JP を使う理由は?

つーわけで試しに組んでみた
LD HL,0
LD A,B
LD B,L
JR L3
L1: RRA
JR NC,L2
ADD HL,BC
L2: SLA C
RL B
L3: OR A
JR NZ,L1

久しぶりだから間違ってるかも知れんが


78 名前: デフォルトの名無しさん 投稿日: 2001/06/20(水) 00:26
x86系で
not eax
and edx,eax
を命令一つで出来ませんか?


79 名前: 78 投稿日: 2001/06/20(水) 00:41
本当はこっちです。
not ebx
and ebx,[eax]

xorみたいなの有りませんか?


80 名前: デフォルトの名無しさん 投稿日: 2001/06/20(水) 02:04
>>78=79
プログラムを組んでいて、片方を反転させた論理積を取る必要が
ほとんどない為、そんな命令はx86系には、ありません。
この場合、大抵は、notを消せるはずなのでプログラムを見直すか、
それでも、notを消せないなら、諦めてそのまま書きましょう。


81 名前: デフォルトの名無しさん 投稿日: 2001/06/20(水) 02:50
MMXにそう言う命令なかったっけ?


82 名前: 80 投稿日: 2001/06/20(水) 03:53
>>81
MMXを使って良いのなら、多分PANDNですね。
でも、86系って言った時に、MMXって含まれるの?


83 名前: デフォルトの名無しさん 投稿日: 2001/06/20(水) 10:01
「x86」で、eax(386) は当たり前に含むんだから、
MMX(586+?)もSSE(786+?)も出てきていいんじゃないのかな。
AMDの3DNow!すらも、x86と括る以外に無いと思うけど。
#問題は、>>78の最低動作保証CPUがどうか、ちゅうことで。


84 名前: 78 投稿日: 2001/06/21(木) 00:55
MMXは使っちゃ駄目です。
他でがんばります。


85 名前: デフォルトの名無しさん 投稿日: 2001/06/21(木) 18:14
OS開発すらCで十分だけど、.libはどうするんだい?


86 名前: デフォルトの名無しさん 投稿日: 2001/06/23(土) 17:31
この本がいいと友人(電子工学系)に薦められましたが、

http://www.ascii.co.jp/TK-80/

どうでしょう?役に立ちますかね?


87 名前: デフォルトの名無しさん 投稿日: 2001/06/23(土) 17:50
>>86
この人が作ってるのね。タイガー計算機を所有の稀な人。
http://www.nn.iij4u.or.jp/~masa-s/


88 名前: デフォルトの名無しさん 投稿日: 2001/06/23(土) 18:24
VC6++でインラインアセンブラを使って、
RS232Cからのデータ入力するプログラムをつくってます。
システムコールしてalのデータをDSに入れてるのですが、

mov ah,03
INT 21h
mov ds:[bx],al

bxはベースレジスタになってます
というエラーがでます。
どうしたらよいでしょうか?
ほかのポインタレジスタは試しましたが
同じエラーでした。


89 名前: デフォルトの名無しさん 投稿日: 2001/06/23(土) 18:55
>>87
パスカル(言語じゃなくて数学者の方)もこんな
計算機作ろうとしてたんだっけ?


90 名前: デフォルトの名無しさん 投稿日: 2001/06/23(土) 21:45
Windows上でDosのシステムコールは
使えないのですか?


91 名前: デフォルトの名無しさん 投稿日: 2001/06/23(土) 21:49
dos窓を使おう


92 名前:   投稿日: 2001/06/24(日) 00:14
>88
mov ah,03h
int 21h
xor ah,ah
mov ds:[bx],ax

dsの値がおかしいとか。


93 名前: デフォルトの名無しさん 投稿日: 2001/06/24(日) 00:20
それ以前にint 21ってDOSコールですけど・・・>92


94 名前: 88 投稿日: 2001/06/24(日) 00:58
レスありがとうございます。
コンソールアプリケーションで作ってます。

mov bx,[bp+6]
mov ax,[bp+8]
mov ds,ax
とやって
mov ah,03
INT 21h
mov ds:[bx],al
としてます。


95 名前: デフォルトの名無しさん 投稿日: 2001/06/24(日) 01:23
>>94
VCの仕様を知らないから何とも言えませんが、
mov bx,[bp+6]
mov ax,[bp+8]
が上手く行くのなら、
mov [bx],al
にしてやれば、OKだと思います。
ところで、dsの意味を分かって使ってますか?
これだけでは、判断出来ませんが、でもdsの中身が気になるので…。


96 名前: デフォルトの名無しさん 投稿日: 2001/06/24(日) 01:58
int 21みたいなdosコールはWin32のコンソールアプリ
にしても使えないよ>94
っていいたかったんだけど。伝わってるのかな?


97 名前: デフォルトの名無しさん 投稿日: 2001/06/24(日) 02:07
>>96
94じゃないけど、
VC6++のインラインアセンブラからは、
DOSのファンクションコールは呼べないの?


98 名前: デフォルトの名無しさん 投稿日: 2001/06/24(日) 02:51
>>97
呼べません。
一度試してみては?


99 名前: デフォルトの名無しさん 投稿日: 2001/06/24(日) 07:48
ファンクションコールできないと
RS232Cからの入力や出力は
ほかに方法はあるのですか?


100 名前: デフォルトの名無しさん 投稿日: 2001/06/24(日) 07:56
>>99
CreateFile


101 名前: デフォルトの名無しさん 投稿日: 2001/06/24(日) 07:57
>>99
ドライバ作りましょう。
Windows2000だと直接たたけないし。


102 名前: デフォルトの名無しさん 投稿日: 2001/06/25(月) 08:15
in,out
とかは使えないのですか?
00h〜ffh
までのポート番号使うみたいですが、
どういう風に使うのでしょうか?


103 名前: デフォルトの名無しさん 投稿日: 2001/07/05(木) 23:31
インテル・アーキテクチャ・ソフトウェア・ディベラッパーズ・マニュアルを
調べてみたのですが、「ペアリング」という単語が見つかりませんでした。
「ペアリング」による最適化は過去のもの??


104 名前: 103 投稿日: 2001/07/05(木) 23:36
あああ、ありました・・・。


105 名前: 103 投稿日: 2001/07/05(木) 23:54
ところでペアリングされているかどうか調べるには
どうしたらよいのですか?


106 名前: デフォルトの名無しさん 投稿日: 2001/07/06(金) 00:40
インテルがコード解析のツール作ってましたね。
あれまだあんのかな?


107 名前: デフォルトの名無しさん 投稿日: 2001/07/06(金) 00:47
Vtune?あるよ。


108 名前: コンパイラを知らない名無しさん 投稿日: 2001/07/06(金) 02:01
みんな、激しくまちがっているぞ。
1は「アセンブラ」を知らないと言っているんだ。
けして「アセンブリ言語」のことではないぞ。
また間違ってもインストラクションの話しでもない。

さて、masmのコマンドラインオプションの話しでもするか。


109 名前: あせん 投稿日: 2001/07/06(金) 02:27
おれ、、アセンブラなら30種類以上、いろんな組み込み関係のCPU
でいじってきたが、、アセンブラ使わないでやる方法は
やったことねぇ。


110 名前: MMX 投稿日: 2001/07/06(金) 02:29
MMXて、論理演算と、比較と、加減算とかできたとおもうけど。。
SSEとかSSE2
3DNOW!+とか、浮動小数点が演算は分かるが、その他に整数演算?は
何があるのか?
浮動小数点だけ?


111 名前: デフォルトの名無しさん 投稿日: 2001/07/06(金) 02:30
>>109
おいおい
Z80くらいならダンプ直打ちくらい平気でやるだろ。

って組み込みじゃZ80使わないのかな? てへっ


112 名前: コンパイラを知らない名無しさん 投稿日: 2001/07/06(金) 02:35
C言語わかりません→文法、セマッティングなど
Cコンパイラわかりません→起動の仕方、オプションなど
アセンブリ言語わかりません→文法、セマッティング、擬似命令の使い方など
アセンブラわかりません→起動の仕方、オプションなど
インストラクションわかりません→インストラクションの動作など


113 名前: デフォルトの名無しさん 投稿日: 2001/07/06(金) 03:01
>ダンプ直打

なんじゃそら? ハンドアセンブルの間違い? てへっ


114 名前: デフォルトの名無しさん 投稿日: 2001/07/06(金) 03:12
>>113
デバッグ中ダンプ画面見て手パッチ入れるときとか
面倒くさがりなので16進直接打ってたの。てへっ


115 名前: デフォルトの名無しさん 投稿日: 2001/07/06(金) 03:18
>>114

なーるほど。てへっ


116 名前: 103 投稿日: 2001/07/06(金) 18:11
>>107
うう。高くて買えないような・・・。

ところで、今Pentiumのため最適化について勉強しているのですが、
interlockとかparingとかでてきますが、
こういうのって他のCPUにも通用するのでしょうか?
で、抽象化されたCPUについて勉強したいのですが、
参考になる資料など教えてもらえませんか?


117 名前: 103 投稿日: 2001/07/06(金) 18:14
確かMIPSってMicroprocessor without Interlock ホニャホニャの
略でしたよね・・・。


118 名前: デフォルトの名無しさん 投稿日: 2001/07/06(金) 18:25
MIPS=VAX=単位。


119 名前: デフォルトの名無しさん 投稿日: 2001/07/07(土) 06:56
million instructions per second?


120 名前: デフォルトの名無しさん 投稿日: 2001/07/09(月) 07:46
rep movsd
より速いメモリブロックのコピーって何ですか?


121 名前: デフォルトの名無しさん 投稿日: 2001/07/09(月) 08:03
CPU に拠って違うんじゃない?

Pentium なら
movsd
movsd
movsd
movsd
dec ecx
jnz LOOP
とか書いた方が速かったような


122 名前: デフォルトの名無しさん 投稿日: 2001/07/09(月) 11:51
>>116
同じような世代のCPUには、通じるんじゃないかな。マイクロプロセッサの
高速化方法は、基礎の部分は割合似通ってるから。

>>120
Pentium MMX以降だと、QWORDでそろえて、MMX使うとか。
P3以降だと、SIMDの128bitレジスタと、キャッシュ制御の命令を駆使するとか。


123 名前: デフォルトの名無しさん 投稿日: 2001/07/11(水) 03:57
>>121
movsd
movsd
movsd
movsd
loop LOOP
じゃなくて?


124 名前: デフォルトの名無しさん 投稿日: 2001/07/13(金) 04:29
すいません、386〜Pentium以降のインストラクションコードの手変換の
方法がわかりやすく載っている資料やサイトってないでしょうか?
mov eax, esp -> 0x89 0xe0
add eax, 4 -> 0x83 0xc0 4
mov eax, [eax] ->0x8b 0
inc eax -> 0x40
ret 4 -> 0xc2 4 0
例えば上は、int __pascal inc(int n);という関数で、
nに1を足した値を返す関数のコードを書いたつもりです。
この辺は8086と同一のコードですが、定数やアドレスを32bitで扱う
場合って多少変化しますよね?
その辺りの変換規則が手持ちの資料ではよくわかりませんでした。


125 名前: デフォルトの名無しさん 投稿日: 2001/07/13(金) 04:38
>>
LOOP命令は遅いので>>121のようにやった方が速いです。


126 名前: 名無しさん 投稿日: 2001/07/13(金) 05:08
ネタじゃないけど、アセンブラ = インラインアセンブラって認識でいい?


127 名前: デフォルトの名無しさん 投稿日: 2001/07/13(金) 05:15
ダメ


128 名前: デフォルトの名無しさん 投稿日: 2001/07/13(金) 14:52
124に便乗だけど、Pentiumのアセンブラ書くのに(主にinline asmだけど)やるのに
いいwebページない?最適化うんぬんとかの。


129 名前: 124 投稿日: 2001/07/13(金) 22:24
すいません。
VCの/FAcオプションのcod出力でほぼ解決しました。
(変換規則はまだよくわかってないけど)
参考になる資料やサイトの情報は引き続きお願いします。


130 名前: デフォルトの名無しさん 投稿日: 2001/07/13(金) 22:41
>>128 ここなんかどう?
http://www.csl.sony.co.jp/person/fnami/pentopt.htm


131 名前: 116 投稿日: 2001/07/13(金) 23:54
>>122
ありがとう。じゃあ、とりあえず何か一つのCPUについてやりこめば、
ほかでも通用する可能性が高いというわけですね。
とりあえず、Pentium(x86)をがんばって勉強しまっす。


132 名前: デフォルトの名無しさん 投稿日: 2001/07/14(土) 00:14
>>130
とかのリンクって他のアセンブラスレではがいしゅつなんじゃないか?
所でこのスレ使ってくの?


133 名前: デフォルトの名無しさん 投稿日: 2001/07/18(水) 00:43
いつのまにかアセンブラスレ無くなってるね。
ここと、もう一個所。


134 名前: デフォルトの名無しさん 投稿日: 2001/07/18(水) 02:18
VCのインラインアセンブラの中って、ラベル使えないの?