トップページ⇒tech
167コメント39KB

アセンブラを知らない名無しさん

■ このスレッドは過去ログ倉庫に格納されています
0001しーげんがーNGNG
なんでも聞いてみ。
0002デフォルトの名無しさんNGNG
アセンブラって、新しいブラジャーのことですか?
0003名無しさんNGNG
>>2
オモシロ
0004デフォルトの名無しさんNGNG
8086でファイルマッッピングみたいな事する
方法があったら教えてください。DOSでも
char *p = mmap(open("巨大file.txt"));
memcopy(p, "ファーファ", strlen("ファーファ"));
みたいなことしたいんで。
00051NGNG
MappingIn8086メソッドを使えばたやすい。
MappingIn8086(任意の式
00064>5NGNG
それはどこの関数ですか?
それと、アセンブラは?
0007デフォルトの名無しさんNGNG
AXはALとAHに別れますが、
なんでEAXはAXともう一つに別れないのですか?

0008デフォルトの名無しさんNGNG
EAとAXじゃ判りにくいから。って漫才コンビじゃない!!
0009デフォルトの名無しさんNGNG
インテルに聞け>7
ハァ?>8
0010tttNGNG
11025kHz,16bitで人の事を一分間録音するのに必要なメモリ容量は?
   
        いくらなんでしょうか?
0011デフォルトの名無しさんNGNG
Z80で割り算の仕方忘れちゃったので
サブルーチン作ってください。
B / C = H ... L
入力   出力
レジスタは呼ぶ前に全部退避しますんで大丈夫です

今晩とりに来ますんでよろしくお願いしま〜す
001211NGNG
すいませんあと掛け算サブルーチンもついでにお願い
えーと
B * C = HL
って感じでね。これも夜にいっしょにとりに来ま〜す。
あ、あと割り算も掛け算も負の考慮はしなくてもいいですよ〜

よろぴく ♥
00131NGNG
氏ね
0014デフォルトの名無しさんNGNG
演算子も定義出来る強力なマクロ機能のある
あせんぶらだったら・・・ってそれじゃ高級言語
使った方が早い?
0015デフォルトの名無しさんNGNG
>11
忘れてるだけなら思い出すと思うけど、
シフトして足す又は引くだけじゃないか。
「取りにくるからやっててね」って・・・
0016デフォルトの名無しさんNGNG
UNIX上でhello assemblerとアセンブラで表示するにはどうしたらいい?
0017デフォルトの名無しさんNGNG
UNIX上のアセったってプロセッサなによ?
0018デフォルトの名無しさんNGNG
>>11 2chに書くときはもう少し煽って厨房を憤らせなきゃ。
書けるようなのいないだろ! とか。
00194>1NGNG
MappingIn8086メソッドってなんなんですか?
何かのライブラリ関数でしょうか
教えてください。
002011NGNG
あーまだ出来てないですね。よかった

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

じゃお願いしますネ ♥
0021デフォルトの名無しさんNGNG
>>18
いや、だんだん育ってきたようだぞ
0022デフォルトの名無しさんNGNG
ヒッキー板の奴が、プログラマ板と間違えて書き込んでいる模様。
002311NGNG
あれ?

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

とにかく、仕事はきっちりお願いしますね。
それから中間報告くらいはお願いしますよ、ほんとに
0024C厨房NGNG
ひとつ、初心者な質問をさせていただきます。
私は2年前ぐらいからC言語をコツコツと勉強しておりますです。
アセンブラは全く触る機会がなかったのですが、アセンブラは他の言語と
比べて難しいのでしょうか?
0025デフォルトの名無しさんNGNG
むしろ簡単です。ただ煩雑なだけ>24
0026>24NGNG
そら機械語に近いぶん難しいぞ。漏れなんかC言語はそれなりに分かる
がアセンブラはさっぱりじゃけん。機種依存激しいし。
00271NGNG
As a result.Assembler is not important. Only C language.
0028デフォルトの名無しさんNGNG
Cより簡単>24
ただ8086のsegmentとか使うとすると面倒臭いかも
68kや386以降のリニアなやつだと楽。
機種依存は当然・・>25
0029ああ、今気づいた・・NGNG
笑うところだったのか<機種依存激しい
0030 NGNG
そう藁うとこ。
003111NGNG
あれー
発注してた関数はどうなったんですか?

・・・朝までまだ時間があるとはいえ、ちょっと仕事遅くないですか?
0032デフォルトの名無しさんNGNG
11はコピペ
0033デフォルトの名無しさんNGNG
>>11 が、この後どうなるか、密かに期待してたり。
0034はてな?NGNG
アセンブラってナニ?
0035デフォルトの名無しさんNGNG
ブラジャーの一種です。
0036デフォルトの名無しさんNGNG
C カップはありません。
0037名無しさんNGNG
アセンブリのブリブリブリッコがアセンブラ。
0038デフォルトの名無しさんNGNG
センスが同一レベルなので
34=35=36=37
確定しました
0039デフォルトの名無しさんNGNG
>>38
ダウト
004034NGNG
>>38
34!=(35=36=37)
0041マジレスさんNGNG
 アセンブラの勉強をしたいのですが、
どういうソフトを使えば良いですかね?
なにぶん、高校のガキなもんですから
プログラマーの皆さん、お手やらわらかにお願いします。
0042デフォルトの名無しさんNGNG
勉強だけしたいならCASL
実用ならVCでインラインアセンブラとか
0043アセンブラを知らない厨房たちNGNG
アセンブルが終わってぼくらは生まれた
アセンブラを知らずにぼくらは育った
0044マジレスさんNGNG
>>42さん
VCでインラインアセンブラというのは
VisualCのソフトでやるという事ですか?
捉え方が間違っていたら、ご指摘ください
0045デフォルトの名無しさんNGNG
おまえら少しは自分で調べろ
0046デフォルトの名無しさんNGNG
VCでインラインアセンブラをかじったんですが、
VC5じゃMMXの命令は使えないんですか?
6でSP4以降じゃなきゃダメ?
0047デフォルトの名無しさんNGNG
VTUNEならオケーです
0048デフォルトの名無しさんNGNG
>>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
0049デフォルトの名無しさんNGNG
VC5のインラインアセンブラでもMMXは使えたと思う。
昔某メガデモのソース読んでてMMX使ってた記憶がある。
005048NGNG
さっきのは実用的じゃないな。
>>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だったら乗算命令があるんだけどな。
0051汗を吸収するブラジャーNGNG
windows上でアセンブラ使って、
プログラムの勉強してみたいのですが
どういう風にすればいいのでしょうか?
helloworld くらい表示できるようになりたいです。

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

ネタっぽいですが、いちおうマジレスきぼんします。
005248NGNG
仕様変更があるのか?
めんどくさ。もう書かん。
さよなら。
0053デフォルトの名無しさんNGNG
>>52
氏ね
0054デフォルトの名無しさんNGNG
>>51
どういう風に表示するかだけど。俺も昔やったことあるけど
TurboAssemblerで直接作ったから、VCはよく知らん。

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

メッセージポンプなんかもマトモに書こうとすると氏ぬぞ(w
0055デフォルトの名無しさんNGNG
8080系で10進4桁の減算を実行するアセンブラを書いてるのですが、うまくいきません。
模範回答例を教えてもらえませんか?
0056デフォルトの名無しさんNGNG
>>51
まず、Windowsが要求するスタートアップルーチンを書いてください。
0057デフォルトの名無しさんNGNG
>55 100進2桁にした方が便利かもしれないよ
0058デフォルトの名無しさんNGNG
>>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);
  }
0059デフォルトの名無しさんNGNG
コンパイルが面倒だけど、いちおう実行できた。


.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"
0060デフォルトの名無しさんNGNG
>>55
8080系って? 8085でも使ってるの?
ちゃんとCPU名書かないとレス付かないと思うよ。
0061デフォルトの名無しさんNGNG
>>51
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/5989/index.html
VCとMASMでのサンプルがあるよ。
0062デフォルトの名無しさんNGNG
>>56
そりゃ 16bit アプリだけだろ。
0063デフォルトの名無しさんNGNG
>>54
TASM なら push しなくても call 関数名 stdcall,引数1,引数2 ...
で済むと思われ
0064先生、分かりませんNGNG
アセンブラって何ですか?
0065デフォルトの名無しさんNGNG
ネタ?
時代?
0066デフォルトの名無しさんNGNG
工場で車を組み立てる人です
ちなみに、コンパイラは、編集者
インタプリタは通訳者です。
0067デフォルトの名無しさんNGNG
チャイナは先行者です。
0068デフォルトの名無しさんNGNG
http://www.interq.or.jp/kansai/kanae/asm.htm
0069デフォルトの名無しさんNGNG
MACファイルからインクルードして
アセンブラ組んでるんですが、
$$〜〜と
最初に記述しますが、
$$はどういう意味なのでしょうか?
0070デフォルトの名無しさんNGNG
>>69
通貨単位

#「トライガン」
0071デフォルトの名無しさんNGNG
>>70
ダブドルと読むらしい
って、MACは知りません。m(_ _)m
0072デフォルトの名無しさんNGNG
>>71
ワンピースならドルドルとかいってるだろう多分
0073デフォルトの名無しさんNGNG
レベル低すぎやしないか?読んでて悲しい。
0074>12NGNG
>>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
0075デフォルトの名無しさんNGNG
>>74
ツッコミどころ満載ですな
0076>74NGNG
合ってるね。
他のやりかたもありそうだけど
0077デフォルトの名無しさんNGNG
>>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

久しぶりだから間違ってるかも知れんが
0078デフォルトの名無しさんNGNG
x86系で
not eax
and edx,eax
を命令一つで出来ませんか?
007978NGNG
本当はこっちです。
not ebx
and ebx,[eax]

xorみたいなの有りませんか?
0080デフォルトの名無しさんNGNG
>>78=79
プログラムを組んでいて、片方を反転させた論理積を取る必要が
ほとんどない為、そんな命令はx86系には、ありません。
この場合、大抵は、notを消せるはずなのでプログラムを見直すか、
それでも、notを消せないなら、諦めてそのまま書きましょう。
0081デフォルトの名無しさんNGNG
MMXにそう言う命令なかったっけ?
008280NGNG
>>81
MMXを使って良いのなら、多分PANDNですね。
でも、86系って言った時に、MMXって含まれるの?
0083デフォルトの名無しさんNGNG
「x86」で、eax(386) は当たり前に含むんだから、
MMX(586+?)もSSE(786+?)も出てきていいんじゃないのかな。
AMDの3DNow!すらも、x86と括る以外に無いと思うけど。
#問題は、>>78の最低動作保証CPUがどうか、ちゅうことで。
008478NGNG
MMXは使っちゃ駄目です。
他でがんばります。
0085デフォルトの名無しさんNGNG
OS開発すらCで十分だけど、.libはどうするんだい?
0086デフォルトの名無しさんNGNG
この本がいいと友人(電子工学系)に薦められましたが、

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

どうでしょう?役に立ちますかね?
0087デフォルトの名無しさんNGNG
>>86
この人が作ってるのね。タイガー計算機を所有の稀な人。
http://www.nn.iij4u.or.jp/~masa-s/
0088デフォルトの名無しさんNGNG
VC6++でインラインアセンブラを使って、
RS232Cからのデータ入力するプログラムをつくってます。
システムコールしてalのデータをDSに入れてるのですが、

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

bxはベースレジスタになってます
というエラーがでます。
どうしたらよいでしょうか?
ほかのポインタレジスタは試しましたが
同じエラーでした。
0089デフォルトの名無しさんNGNG
>>87
パスカル(言語じゃなくて数学者の方)もこんな
計算機作ろうとしてたんだっけ?
0090デフォルトの名無しさんNGNG
Windows上でDosのシステムコールは
使えないのですか?
0091デフォルトの名無しさんNGNG
dos窓を使おう
0092 NGNG
>88
mov ah,03h
int 21h
xor ah,ah
mov ds:[bx],ax

dsの値がおかしいとか。
0093デフォルトの名無しさんNGNG
それ以前にint 21ってDOSコールですけど・・・>92
009488NGNG
レスありがとうございます。
コンソールアプリケーションで作ってます。

mov bx,[bp+6]
mov ax,[bp+8]
mov ds,ax
とやって
mov ah,03
INT 21h
mov ds:[bx],al
としてます。
0095デフォルトの名無しさんNGNG
>>94
VCの仕様を知らないから何とも言えませんが、
mov bx,[bp+6]
mov ax,[bp+8]
が上手く行くのなら、
mov [bx],al
にしてやれば、OKだと思います。
ところで、dsの意味を分かって使ってますか?
これだけでは、判断出来ませんが、でもdsの中身が気になるので…。
0096デフォルトの名無しさんNGNG
int 21みたいなdosコールはWin32のコンソールアプリ
にしても使えないよ>94
っていいたかったんだけど。伝わってるのかな?
0097デフォルトの名無しさんNGNG
>>96
94じゃないけど、
VC6++のインラインアセンブラからは、
DOSのファンクションコールは呼べないの?
0098デフォルトの名無しさんNGNG
>>97
呼べません。
一度試してみては?
0099デフォルトの名無しさんNGNG
ファンクションコールできないと
RS232Cからの入力や出力は
ほかに方法はあるのですか?
0100デフォルトの名無しさんNGNG
>>99
CreateFile
0101デフォルトの名無しさんNGNG
>>99
ドライバ作りましょう。
Windows2000だと直接たたけないし。
0102デフォルトの名無しさんNGNG
in,out
とかは使えないのですか?
00h〜ffh
までのポート番号使うみたいですが、
どういう風に使うのでしょうか?
0103デフォルトの名無しさんNGNG
インテル・アーキテクチャ・ソフトウェア・ディベラッパーズ・マニュアルを
調べてみたのですが、「ペアリング」という単語が見つかりませんでした。
「ペアリング」による最適化は過去のもの??
0104103NGNG
あああ、ありました・・・。
0105103NGNG
ところでペアリングされているかどうか調べるには
どうしたらよいのですか?
0106デフォルトの名無しさんNGNG
インテルがコード解析のツール作ってましたね。
あれまだあんのかな?
0107デフォルトの名無しさんNGNG
Vtune?あるよ。
0108コンパイラを知らない名無しさんNGNG
みんな、激しくまちがっているぞ。
1は「アセンブラ」を知らないと言っているんだ。
けして「アセンブリ言語」のことではないぞ。
また間違ってもインストラクションの話しでもない。

さて、masmのコマンドラインオプションの話しでもするか。
0109あせんNGNG
おれ、、アセンブラなら30種類以上、いろんな組み込み関係のCPU
でいじってきたが、、アセンブラ使わないでやる方法は
やったことねぇ。
0110MMXNGNG
MMXて、論理演算と、比較と、加減算とかできたとおもうけど。。
SSEとかSSE2
3DNOW!+とか、浮動小数点が演算は分かるが、その他に整数演算?は
何があるのか?
浮動小数点だけ?
0111デフォルトの名無しさんNGNG
>>109
おいおい
Z80くらいならダンプ直打ちくらい平気でやるだろ。

って組み込みじゃZ80使わないのかな? てへっ
0112コンパイラを知らない名無しさんNGNG
C言語わかりません→文法、セマッティングなど
Cコンパイラわかりません→起動の仕方、オプションなど
アセンブリ言語わかりません→文法、セマッティング、擬似命令の使い方など
アセンブラわかりません→起動の仕方、オプションなど
インストラクションわかりません→インストラクションの動作など
0113デフォルトの名無しさんNGNG
>ダンプ直打

なんじゃそら? ハンドアセンブルの間違い? てへっ
0114デフォルトの名無しさんNGNG
>>113
デバッグ中ダンプ画面見て手パッチ入れるときとか
面倒くさがりなので16進直接打ってたの。てへっ
0115デフォルトの名無しさんNGNG
>>114

なーるほど。てへっ
0116103NGNG
>>107
うう。高くて買えないような・・・。

ところで、今Pentiumのため最適化について勉強しているのですが、
interlockとかparingとかでてきますが、
こういうのって他のCPUにも通用するのでしょうか?
で、抽象化されたCPUについて勉強したいのですが、
参考になる資料など教えてもらえませんか?
0117103NGNG
確かMIPSってMicroprocessor without Interlock ホニャホニャの
略でしたよね・・・。
0118デフォルトの名無しさんNGNG
MIPS=VAX=単位。
0119デフォルトの名無しさんNGNG
million instructions per second?
0120デフォルトの名無しさんNGNG
rep movsd
より速いメモリブロックのコピーって何ですか?
0121デフォルトの名無しさんNGNG
CPU に拠って違うんじゃない?

Pentium なら
movsd
movsd
movsd
movsd
dec ecx
jnz LOOP
とか書いた方が速かったような
0122デフォルトの名無しさんNGNG
>>116
同じような世代のCPUには、通じるんじゃないかな。マイクロプロセッサの
高速化方法は、基礎の部分は割合似通ってるから。

>>120
Pentium MMX以降だと、QWORDでそろえて、MMX使うとか。
P3以降だと、SIMDの128bitレジスタと、キャッシュ制御の命令を駆使するとか。
0123デフォルトの名無しさんNGNG
>>121
movsd
movsd
movsd
movsd
loop LOOP
じゃなくて?
0124デフォルトの名無しさんNGNG
すいません、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で扱う
場合って多少変化しますよね?
その辺りの変換規則が手持ちの資料ではよくわかりませんでした。
0125デフォルトの名無しさんNGNG
>>
LOOP命令は遅いので>>121のようにやった方が速いです。
0126名無しさんNGNG
ネタじゃないけど、アセンブラ = インラインアセンブラって認識でいい?
0127デフォルトの名無しさんNGNG
ダメ
0128デフォルトの名無しさんNGNG
124に便乗だけど、Pentiumのアセンブラ書くのに(主にinline asmだけど)やるのに
いいwebページない?最適化うんぬんとかの。
0129124NGNG
すいません。
VCの/FAcオプションのcod出力でほぼ解決しました。
(変換規則はまだよくわかってないけど)
参考になる資料やサイトの情報は引き続きお願いします。
0130デフォルトの名無しさんNGNG
>>128 ここなんかどう?
http://www.csl.sony.co.jp/person/fnami/pentopt.htm
0131116NGNG
>>122
ありがとう。じゃあ、とりあえず何か一つのCPUについてやりこめば、
ほかでも通用する可能性が高いというわけですね。
とりあえず、Pentium(x86)をがんばって勉強しまっす。
0132デフォルトの名無しさんNGNG
>>130
とかのリンクって他のアセンブラスレではがいしゅつなんじゃないか?
所でこのスレ使ってくの?
0133デフォルトの名無しさんNGNG
いつのまにかアセンブラスレ無くなってるね。
ここと、もう一個所。
0134デフォルトの名無しさんNGNG
VCのインラインアセンブラの中って、ラベル使えないの?
0135デフォルトの名無しさんNGNG
AT互換機のx86系のCPUで、OS等や各種言語のAPIやライブラリを使用せずに、
現在の時刻を得る(BIOS等を利用する)具体的な方法を誰か知りませんか?
参考になるホームページでも良いので、知ってたら教えて下さい。
0136デフォルトの名無しさんNGNG
>135
古い本ひっぱりだしてみたよ
ハード的にはCMOSを読めばいいみたい
port70HにCMOSアドレス+80Hを出力
その後port71Hからin
CMOSアドレス
00H 秒
02H 分
04H 時
06H 曜日
07H 日
08H 月
09H 年
ただし、NT系でPortアクセスできるかどうかは不明
0137デフォルトの名無しさんNGNG
>136
NTではできないよ。たぶんデバドラ書けば別だろうけど
でもそういえば昔、NT上でCMOSいぢるライブラリ見たことあった様な・・
0138デフォルトの名無しさんNGNG
sage
0139135NGNG
>>136
さっそく試してみます。ありがとうございました。m(_ _)m
0140デフォルトの名無しさんNGNG
8086CPUのエミュって無い?
ソース付ききぼん
0141デフォルトの名無しさんNGNG
PC98えみゅって86エミュだろ
別にVMwareでもVirtualPCでもいいけど
0142デフォルトの名無しさんNGNG
pcemu>140
0143デフォルトの名無しさんNGNG
>>142
thx!
0144デフォルトの名無しさんNGNG
age
0145デフォルトの名無しさんNGNG
アセンブラなんてZ80の時以来ご無沙汰だな。
あの時代はやるしか無かったと言ったほうがいいかな。
0146デフォルトの名無しさんNGNG
そんな昔話ききたくありません>145
0147デフォルトの名無しさんNGNG
ソース付のWin32(PE)のAsmなんてあります?
0148デフォルトの名無しさんNGNG
追加:
x86 の
0149147NGNG
ageっす。
0150147NGNG
再ageっす
0151147NGNG
誰か・・
0152デフォルトの名無しさんNGNG
>>147
0153デフォルトの名無しさんNGNG
何言ってるのかわかんないんだよ
0154デフォルトの名無しさんNGNG
>>147
NASM。SSE2まで対応してるバージョンもある。
0155デフォルトの名無しさんNGNG
>>154
NASMで検索したら引っかかりました
どうもありがとうございます

これで、アセンブラが作れる・・・
0156デフォルトの名無しさんNGNG
まず無理とみた。
0157デフォルトの名無しさんNGNG
z80てザイログでしょ?
PC88付属モニタの形式ってザイログ式じゃないですよね。
ld hl,ffff が
lhld ffffってなやつ(INTEL式なのか?)

当時からN●Cがドキュってのはわかっているんですけど,何でこーなってしまったのかおしえれ。
0158157NGNG
>lhld ffffってなやつ(INTEL式なのか?)
xINTEL モトローラ形式か?

検索引っかからんので教えてください。
0159デフォルトの名無しさんNGNG
ちょっと古めのスレなので>>157が見てるかどうか分からないけど…

Z80が出る前にインテルが8080というCPUを出していて、Z80はこの8080の
上位互換になってました。LD HL,nnはZ80用にザイログ作ったニーモニック
で、LHLD nnは8080用にインテルが作ったニーモニックですね。

8080は、日本ではワンボードマイコンに少し使われた程度だと思うんですが、
アメリカでは結構採用例があったのか、8080のソフト資産が割とあったみたい
ですね。オリジナルのMicrosoft BASICも8080の命令しか使ってないはず。

PC-8801もMicrosoft BASICだったわけで、モニタのアセンブラがインテル
表記だったのもその関係なのかも。あと、ザイログ形式よりもインテル形式の
方が、人間には分かりにくいけど命令のフォーマットが単純なのでアセンブラが
作りやすいです。これもインテル形式が採用された理由かも知れません。
0160157ですNGNG
今読みました。
レスありがとうございます>>159
0161157NGNG
>オリジナルのMicrosoft BASICも8080の命令しか使ってないはず。
↑これが原因に思えてならない。当時からヤッテくださったんですねM$さんは
長年の謎が解けたような気がします。ありがとです。
0162デフォルトの名無しさんNGNG
アセンブラ… (・∀・)イイ!
http://pc.2ch.net/test/read.cgi/tech/1002267809/l50
0163デフォルトの名無しさんNGNG
質問です。
仮想メモリで32ビットアドレス表現なんだけど
どうやってプロセッサは一般保護例外って判断できるの?
セグメントがページングに変わるから判断できないと思うんだけど・・・。
0164デフォルトの名無しさんNGNG
それは聞いてはイケナイ質問ですな。
OSのセキュリティ云々にも直に関わる問題だし。

ちょっと旧式のOS解析したら秘密はとけます。
最近のは上手く隠しとおせているよね。←本当に?
0165デフォルトの名無しさんNGNG
一般保護例外つきの環境でアセンブラいじるのって結構空しい
ものがあるよね。アプリケーションその物に対してはそりゃあそ
れなりの最適性を加えられるんだけど・・・なぁ?
0166デフォルトの名無しさんNGNG
K6-2だと条件分岐よりもloopのほうが圧倒的に速いんですけれど
ATHlonあたりはどうなんですか?
最近はAthlonもSSEつかえるということだから

P5,SSE,SSE2,Loop付の四系統で考えてんだけど
0167デフォルトの名無しさんNGNG
多分飯に関係ないのなら触れないのが大正解
■ このスレッドは過去ログ倉庫に格納されています