Message Log 26 Return to Parent Menu 
Last Updated by 07/01/05(Fri)  

 
Tips
 

 やっぱり 2000 年もアセンブラッ!!だねっ


 
Message log list
 

 アセンブラ掲示板に書き込まれた過去のログです。


Message log 44 (05/01/0506/30/05)
Message log 43 (01/01/0504/30/05)
Message log 42 (01/01/0412/31/04)
Message log 41 (11/01/0312/31/03)
Message log 40 (10/01/0310/31/03)
Message log 39 (04/01/0309/30/03)
Message log 38 (12/01/0203/31/03)
Message log 37 (08/01/0211/30/02)
Message log 36 (05/01/0207/31/02)
Message log 35 (03/01/0204/30/02)
Message log 34 (01/01/0202/28/02)
Message log 33 (09/15/0112/31/01)
Message log 32 (08/01/0109/14/01)
Message log 31 (05/26/0107/31/01)
Message log 30 (05/15/0105/25/01)
Message log 29 (05/01/0105/14/01)
Message log 28 (02/01/0104/30/01)
Message log 27 (01/01/0101/31/01)
Message log 26 (10/01/0012/31/00)
Message log 25 (07/21/0009/30/00)
Message log 24 (06/16/0007/20/00)
Message log 23 (05/20/0006/15/00)
Message log 22 (05/01/0005/19/00)
Message log 21 (04/01/0004/30/00)
Message log 20 (02/01/0003/31/00)
Message log 19 (01/01/0001/31/00)
Message log 18 (11/01/9912/31/99)
Message log 17 (09/05/9910/31/99)
Message log 16 (08/21/9909/04/99)
Message log 15 (07/01/9908/20/99)
Message log 14 (04/01/9906/30/99)
Message log 13 (02/01/9903/31/99)
Message log 12 (11/01/9801/31/99)
Message log 11 (09/21/9810/31/98)
Message log 10 (08/01/9809/20/98)
Message log 09 (07/01/9807/31/98)
Message log 08 (05/04/9806/30/98)
Message log 07 (04/08/9805/03/98)
Message log 06 (02/23/9804/07/98)
Message log 05 (01/01/9802/22/98)
Message log 04 (11/09/9712/31/97)
Message log 03 (10/17/9711/08/97)
Message log 02 (08/22/9710/16/97)
Message log 01 (06/20/9708/21/97)


 
Message log 10/01/0012/31/00
 




セコム  [2000/12/29 Fri 23:27:41]  [143.90.130.55]

直接CDドライブからデータを読み出すにはどうすればよいのでしょう
か?このときのCDとはCDDAを指します。
紅 かぐや  [2000/12/26 Tue 00:37:06]  [203.140.13.11]
Selene

ROCKさんと同じように、私も少々疑問に思ってました(^^;

私は、マスム・タスム・ガスと読んでましたが・・・・
マクロアセンブラ・ターボアセンブラ・グニュアセンブラの略なのかな?
良くわかりませんが・・・・
ほんとのところはなんて読むんでしょう(^^;;
ROCK  [2000/12/25 Mon 19:06:58]  [210.253.226.43]

突然ですけど、MASM,TASM,GASとかってどういう読み方だか分かります?


なべぞう  [2000/12/24 Sun 06:15:41]  [211.127.212.78]

<解決しました>
えらく長い間悩みましたが、11/3付の僕の質問がやっと解決いたしました。単純にTASM5についていたTLink(Ver7.1)ではDOSSEG疑似命令をサポートしてなかったのが原因でした。
今日なにげにBorland TurboC4.0のTLink(ver6.1)を使ったところすんなりとエラーが出ずにリンクできました。

返事が遅れて大変申し訳ありませんが、ご助言くださったカト殿ならびにAF殿に厚く御礼申し上げます。

しかし僕、こんなことで詰まってちゃ、これからさきが思いやられます。C++Suiteってマニュアル付いてないし・・・(泣)

へろへろ  [2000/12/21 Thu 20:23:06]  [133.72.168.2]

カトさん、レスありがとうございました。
本当にすごく参考になりました。
力卜  [2000/12/20 Wed 20:08:31]  [192.51.44.16]

へろへろさん、こんにちは。力卜と申します。

私はZ80についてはほとんど知らないのですが、Z80のADD命令は
キャリー以外にもフラグを変化させるんじゃないですか?
(ソースの引用時に省略されただけかもしれませんが)

また、x86のadd命令のフラグの変化を調べればわかると思いますが、
キャリーフラグは、演算(add)の度に常にON or OFFのいずれかに変化
しますので、先頭のclcは不要のハズです。

手抜き者の私が仮想6809(8ビットCPUです)を書いたときに、フラグの
実装は、x86のフラグ変化をほとんどそのまま使いました。(^_^;)

へろへろさんの例で言うと、次のような感じになります。
Z80_ADD_H: ;;;; Z80とx86のフラグの変化がまったく同一だと仮定
add ah,bh ;; Z80の命令に相当する命令を実行する
pushf ;; Z80のADD命令相当のadd実行後のフラグをそのままプッシュ
pop [FLAGSKEEP] ;; フラグを退避域に保存
jmp begin
FLAGSKEEP: dw 0000h

そして、Jcc命令あたりでは以下のように保存したフラグを使います。
フラグを同時に判定するようなJcc命令でも簡単に記述できることでしょう(^_^;)
Z80_Jcc: ;;;; Z80のPCの値がbxに入っていると仮定
call getPCoffset1 ;; Jcc命令2バイト目(PC変位1バイト)をdxに求める
push [FLAGSKEEP] ;; 保存してあるフラグを復元
popf ;; Z80のフラグをx86のフラグに反映
jncc next_jcc ;; Z80のJccの逆の論理の条件ジャンプ命令
add bx,dx ;; 条件に合致したため、目的のアドレスにジャンプ
next_jcc:
jmp begin

なお、ADDでは簡単な例としてx86とZ80がまったく同じフラグ変化として
例を挙げましたが、実際には、Jcc以外でも命令実行前のフラグの値によって、
命令の実行結果が異なるケースは多いですし、Z80の方はフラグが変化しない
がx86ではフラグが変化してしまうため、保持が必要などがあると思います。
こういう場合は、フラグを事前に復元してからZ80の命令に相当する命令を
実行したり、実行後に、一部のフラグの値をもとに戻してやるなど、
つじつま合わせが必要になります。
pushf や popf は過去のものなので、実行速度などは今のCPUでは早くない
かもしれませんが、エミュレーターの記述が楽になるかもしれません。

以上、少しでも参考になれば。

力卜  [2000/12/20 Wed 19:24:19]  [192.51.44.12]

まんちさん、こんにちは。力卜と申します。

よくある質問ですが、理由を一言で説明しづらいと思ったのでまとめて(?)
みました。私の勘違いへの指摘や補足などあればお願いします > ALL。

- VC++6.0では、Win16アプリを含め16ビットアプリを作成できない。
16ビットアプリを作成できるのは、VC++1.51j(VC++1.52e)まで。
- VC++2.0以降で作った「一見MS-DOSアプリ風」のアプリは、実は
Win32のコンソールアプリ(もちろん32ビットのアプリ)である。
(このため、同アプリはMS-DOSやWin3.1のDOS窓からは実行できない)
- 16ビットアプリなら、int命令でMS-DOSのシステムコールを使える。
(Win16アプリから扱えるかどうだは知りません)
- Win32アプリケーションでは、一部の特殊な命令(int命令etc)は
OSを保護するために使用不可能になっているハズ(OSの仕様による)。
- Win32アプリケーションからは、MS-DOSのシステムコールは
使えない (サンクだったかを使えば実現できるのかな?)

こんなところでしょうか。

まんち  [2000/12/19 Tue 15:05:41]  [211.19.96.130]

★先の投稿は書きかけで送信してしましました。スイマセン。
みなさん初めまして。
masmを再勉強しようと思い、VC6.0でcppファイル内での
インラインアセンブラを使用してちまちまと勉強しています。
ふと、昔使っていたMS-DOSのファンクションコールを
試してみたくなり、以下のような一文字を表示する
プログラムをしてみたのですが、DOS窓で実行させたところ
「不正処理による強制終了」になってしましました。
なにか足りないところがあるのでしょうか?
どうしても、DOSファンクションを使ってみたいのです。
ご助言、よろしくお願いいたします。

#include "stdafx.h"
int main(int argc, char* argv[])
{
__asm
{
mov ah,02h
mov dl,'A'
int 21h ;dos function
}
return 0;
}













まんち  [2000/12/19 Tue 15:02:48]  [211.19.96.130]

みなさん初めまして。
masmを再勉強しようと思い、VC6.0でcppファイル内での
インラインアセンブラを使用してちまちまと勉強しています。
ふと、昔使っていたMS-DOSのファンクションコールを
試してみたくなり、以下のような一文字を表示する
プログラムをしてみたのですが、DOS窓で実行させたところ
「不正処理による強制終了」になってしましました。

#include "stdafx.h"
int main(int argc, char* argv[])
{
__asm
{
mov ah,02h
mov dl,'A'
int 21h
}
return 0;
}













まんち  [2000/12/19 Tue 15:02:48]  [211.19.96.130]

みなさん初めまして。
masmを再勉強しようと思い、VC6.0でcppファイル内での
インラインアセンブラを使用してちまちまと勉強しています。
ふと、昔使っていたMS-DOSのファンクションコールを
試してみたくなり、以下のような一文字を表示する
プログラムをしてみたのですが、DOS窓で実行させたところ
「不正処理による強制終了」になってしましました。

#include "stdafx.h"
int main(int argc, char* argv[])
{
__asm
{
mov ah,02h
mov dl,'A'
int 21h
}
return 0;
}













へろへろ  [2000/12/19 Tue 14:14:31]  [133.72.168.2]

z80のCPUのエミュレータを作っています。8086上で。
キャリーフラグをエミュレートしようとしているのですが
よくわかりません。8086のキャリーフラグを使うと、例えば、

;ADD H <- z80の命令
clc ;キャリーを0にする
add ah,bh
jc next
jmp begin ;はじめに戻る
next:
mov CF,1
jmp begin

CF db 0 ;キャリーフラグ
こんな感じになります。
ほかによい方法はありますか?


michan  [2000/12/12 Tue 14:20:16]  [202.213.224.70]
いえいえ

澤口@一升金さんレスありがとう御座います。
澤口@一升金のまったくお話しの通りです。
コノ問題は解消と言うか、詳細が解りました
Alphaアセンブラって”Alpha”ってハード
に対応したアセンブラって事ですね。
私は、VC6に推奨されているのが、”Alpha"
アセンブラとばっかり勘違いしておりました
(だってHELPに載っているんですもん)
まあ、そんなこんなで、MASM32でやる事にしました。
特異モノをHELPに入れるな!とM社に言いたいところですね。
色々と資料まとめたじゃないですかぁ・・・ってな具合です
><
澤口@一升金  [2000/12/12 Tue 01:30:31]  [211.4.198.26]

澤口@一升金です。

to michanさん:

いまいち話がよく見えないのですが、Alpha CPU chip 用のアプリを
アセンブラで開発するということなのでしょうか。
asaxp.exe は Windows NT for Alpha で動作する VC++ for Alpha
でしか使えないと思いますので、 x86 の開発環境とは全く別物
です。値段も NT と VC++ あわせて50万円以上したような。
asaxp.exe の役割は VC++ for Alpha が作った Alpha 用のアセンブ
ラソースコードをアセンブルする以外の使い方はできないので、MAS
Mのようにそれ自体では何も開発できないし、マニュアルもないはず
です。
Microsoft 自体が Alpha 環境の開発ツール(OS を含めて)から撤退
を表明していますので、どうしても Alpha に対応するなら Linux 環境
に移行された方がよろしいでしょう。
へろへろ  [2000/12/11 Mon 09:11:43]  [133.72.168.2]

澤口@一升金さん、どうもです。
説明不足でした。
8086上でz80をエミュレートしようとしてます。
先輩にCPUを書くなら、プログラムカウンタは、
自分で作るんだよ。っていわれました。
とうことで自己解決しました。
どうも、ありがとうございます。

michan  [2000/12/10 Sun 21:12:52]  [210.159.116.35]
ええかげんやね〜

検索で流れ流れてやってまいりました
michanと申すしがない腐れPGでございます
以後よろしく^^
さて、Win(?)ではやりたくは無かったアセンブラに
取り掛からなければ行けなくなってきましたので
初歩の初歩の質問があるのですが。
VC6のドキュメントに記してあったのですが
Alphaアセンブラを一応推奨しているみたいなので
そっちを使いたいと思うのですが。Vcの各ディレクトリー
を見てみましがそれらしい実行ファイルASAXP.exeが見つからなくて
困っております。コメントをHELPを参照するとCL.EXEが
インストールされている環境とか書いてありますが。
CL.EXEの/?で見てもASAXPのオプションらしきモノは見つかりませんし
こまっています。ASAXPって本当にVCでサポート
(内臓)されいるのでしょうか?
懐かしいMASMの話がメインになっているみたいなので失礼と
場違いな質問だと思いますが、よろしくお願い致します。
澤口@一升金  [2000/12/10 Sun 19:32:05]  [211.4.198.17]

澤口@一升金です。

to へろへろさん:

>今、MASMでz80を書いています。
これ、意味が分からないのですが。Z80 用のプログラムを x86 に移植
しているのか、X86 上で Z80 のシミュレータを作っているのかどちらな
んでしょう。
ニーモニック表はとりあえずここのページにもありますが。

http://www.e-net.or.jp/user/missing-link/assembler/asmhead.html

飛び先にラベルを付けておけば MASM の方でよきにはからってくれます。

へろへろ  [2000/12/10 Sun 12:33:10]  [133.72.168.2]

今、MASMでz80を書いています。
z80では、ジャンプ命令の時に引数をとるのですが
(JR x ,JR c,x など)
8086では、どうやって表せばよいのでしょうか?
プログラムカウンタを作るべきでしょうか?
$(アセンブル中の現在地)を使って表すのでしょうか?

けんぼぉ  [2000/12/07 Thu 09:54:31]  [210.163.178.219]

ども、けんぼぉです。

♪syunsyunさん
はじめまして。
> DOS用ソフトやWIN用ソフトを逆アセンブルするのに
> 便利なソフトはありますか?

Linux 版しか使ったことはありませんが、特定のCPU の
ニーモニックを色分けで表示します。
http://biew.sourceforge.net/en/biew.html

NASM の ndisasm(w).exe とかもあります。
http://www.web-sites.co.uk/nasm/

あと過去ログにも いくつかあったと思います。
澤口@一升金  [2000/12/07 Thu 08:08:11]  [211.4.198.13]

澤口@一升金です。

to かわがみ氏さん:

ASM→C 変換ツールはあるにはあったけど、安くもない。

http://www.mpsinc.com/mpsmenu.html

経験からいうと、C ライクに記述されていてもニーモニック
の動作が覚えやすくなるということはそうそうないです。
日立の CPU のデータシートなどだとニーモニック動作を
C 言語で解説してますけどね。
syunsyun  [2000/12/06 Wed 19:38:07]  [210.147.135.167]

DOS用ソフトやWIN用ソフトを逆アセンブルするのに
便利なソフトはありますか?
Diswinはwin用ですし。
winソフトだとやはり逆アセンブルしてもかなり
ややこしいそうなので。
お願いします。
Rio  [2000/12/06 Wed 08:11:09]  [210.130.68.43]

 AFさん。レスありがとうございます。
>ちなみに #4B01H を実行した後に #4CxxH を実行すると #4B01H を
>コールした INT 21 の直後に実行位置が戻ります(書いてある意味
>が分かりにくいなぁと思ったらもう少し #4B01H を使い込んで見ると
>良いでしょう)。
 確かにデバッガ上で動かしたときにそうなっていました。
 その時はなぜそうなるか理解できず、デバッガがおかしいのかとも
思っていましたが、そういうことだったんですね。
 とりあえずそれを踏まえてプログラムを組みなおしてみます。

AF  [2000/12/05 Tue 00:12:16]  [210.233.160.2]
http://www.ksky.ne.jp/~afuruta/

Rio さんこんにちは、

> MS-DOSのファンクション4B01h(プログラムをロードして実行しない)

#4B01H の一般論で申し訳ないですが、#4B01H で 2 つのプログラム
をロードした状態にするのは困難を極めます。

#4B01H を実行する前後でプロセスが切り替わります。#62H を使って
PSP セグメント(DOS にとってのプロセス ID)を調べれはその変化が
分かります。CS:IP こそ飛ばされませんが #4B01H の後は、新しい
プロセスが実行されているのと極めて近い状態になります。

ちなみに #4B01H を実行した後に #4CxxH を実行すると #4B01H を
コールした INT 21 の直後に実行位置が戻ります(書いてある意味
が分かりにくいなぁと思ったらもう少し #4B01H を使い込んで見ると
良いでしょう)。

#4B01H でプログラムをロードした後さらにプログラムを #4B01H で
ロードするには #4AH を使用してメモりブロックを縮小する必要が
あります。ただし、プロセスが切り替わっているので、メモりブ
ロックの所有者が変わっています。

ロードした 2 つのプログラム安全に動作させるにはプロセス切り
替えを行う必要があります。#50H が隠しコールとして存在しますが、
実装は困難を極めます。PSP 以外にもプロセスに属するコンテキスト
が幾らかあります。

笹木領地  [2000/12/04 Mon 01:59:31]  [210.159.232.66]

澤口@一升金さん、ありがとうございます。
日立のリファレンスにはイミディエイトのアドレッシングモードの書式
が、#xx:8などとなっているだけで、xxにBや「'」が入るとは書いていなかったのが、
混乱の原因でした(なにせ初心者の思い込みですので)
>MOV #B'01011011,ROL 
>というのは16進でいう5Bをセットしていますね
>多分この値をさらに AD コンバータICに出力すればモード設定がで>きるのでしょう
おっしゃる通りです。コメントステートにもそうやって書いてあるのに…
あとは、なぜR0Lにそうセットするとそうなるのかを調べます。

ところで今日は良い本を見つけました。
その名も「H8ビギナーズガイド」といいます。
いままでH8関連のこうした書籍がなかったのでむちゃくちゃうれしいです。(あるにはあったけど絶版でした)
出版社は東京電機大学出版局で、価格は2800円です。発売されたてです。
H8の3048という型のICに特化された本なので、AKI-H8なんかやろうとしている人にはおすすめですね。
ながながと宣伝みたいなこと書いてしまいました(すいません)
ともかく、まずはお礼まで。



澤口@一升金  [2000/12/03 Sun 08:47:12]  [211.4.198.30]

澤口@一升金です。

to 笹木さん:

'#' というのは即値データ、'B' は2進表示であることをあらわします。
R0 レジスタの下位バイトに 2進の01011011、すなわち16進の 5B
をセットしていますね。
多分この値をさらに AD コンバータICに出力すればモード設定ができ
るのでしょう。
笹木領地  [2000/12/03 Sun 04:46:14]  [210.159.232.139]

はじめまして。領地と申します。
アセンブラ関係を探してネットをふらふら漂っているうちにここを見つけました。よろしくお願いします。

現在日立のH8というCPUの勉強をしているのですが、
日立のリファレンスなどを参照してもどうしてもわからない一行があります。
トランジスタ技術の2000年6月号に「USB用A-Dコンバータの製作」という特集があるのですが、214ページにあるアセンブラリストの中で
MOV #B'01011011,ROL ;割込み可、スキャンモード、134
            ;ステート、AN0〜3
のこの一行の意味がぜんぜんわかりません。特に#B'というのはいったいなんでしょう?
どなたかわかる方いらっしゃいますでしょうか?
いきなり質問で申し訳ないです。勉強し始めたばっかりでほかの方の質問に答えることができません。はやく自分の知識をフィードバックできるようになりたいものです。
T.K  [2000/12/02 Sat 15:24:03]  [165.76.222.176]

こんにちは

 「DOS/Vプログラミング技法」のオンデマンド出版の投票数が7に達し、順位もベスト10入りを果たしました。投票してくださった皆様、ありがとうございました。また、過去に記載したアドレスが無効になっていたので、TOPページのアドレスを記載いたします。
 今後ともよろしくお願いします。

http://www.d-pub.co.jp/
Rio  [2000/12/01 Fri 23:33:16]  [210.130.68.28]

 こんにちは、Rioと言います。
 MS-DOSのファンクション4B01h(プログラムをロードして実行しない)
を使ったプログラムを作っているのですが、このファンクションで2つ
のプログラムを連続して呼び出すとうまく動きません。
 どうやら1つめのプログラムをロードしたのと同じアドレスに2つめの
プログラムがロードされ、上書きされているようなのですが...
 どのように対処すればいいでしょうか?ロードした後MOVで再配置する
しか方法はないのでしょうか?
 教えていただければ幸いです。
AZUCO  [2000/11/26 Sun 12:28:46]  [211.120.160.77]
AZUCO WORLD

プロテクトモードって、セグメントが
16bit長のものをスタンダードモード
32bit長のものをエンハンストモード
って言ってませんでしたっけ?

16bitモードとかいう言い方は
リアルモードと、
スタンダードモードと
V86モードをまぜこぜにするので
かなり解りにくいですよね〜

ってここに書き込むの久しぶりだなぁ
かわがみ氏  [2000/11/24 Fri 17:16:21]  [202.221.8.146]

はじめまして。

最近、アセンブラの勉強をはじめたのですが、どうも他人の書いたコードがすらすら読めません。
アセンブラをC言語風のスクリプト言語に変換してくれるツールとかはないでしょうか?
ご存知の方、いらっしゃいましたら、教えてください。
かわがみ氏  [2000/11/24 Fri 17:15:33]  [202.221.8.146]
アセンブラコードをCに変換

はじめまして。

最近、アセンブラの勉強をはじめたのですが、どうも他人の書いたコードがすらすら読めません。
アセンブラをC言語風のスクリプト言語に変換してくれるツールとかはないでしょうか?
ご存知の方、いらっしゃいましたら、教えてください。
かわがみ氏  [2000/11/24 Fri 17:12:24]  [202.221.8.146]
アセンブラコードをCに変換

はじめまして。

最近、アセンブラの勉強をはじめたのですが、どうも他人の書いたコードがすらすら読めません。
アセンブラをC言語風のスクリプト言語に変換してくれるツールとかはないでしょうか?
ご存知の方、いらっしゃいましたら、教えてください。
かわがみ氏  [2000/11/24 Fri 17:07:20]  [202.221.8.146]


T.K  [2000/11/24 Fri 12:50:00]  [165.76.222.106]

こんにちは

 下記のサイトで、私のリクエストに投票してくださった皆様、ありがとうございました。私もできる限り努力して、アセンブラ関係の書籍のオンデマンドによる復刊を実現させたいと思います。
 また、皆様の中で、復刊させたい書籍がありましたら、下記のサイトに登録してはいかがでしょうか。私もできる限り協力させていただきたいと思います。

http://www.d-pub.co.jp/voice/index.html



cels  [2000/11/21 Tue 05:15:31]  [210.149.136.53]

celsです。

to kuuさん

Windows3.1の話はよく知りません。

286は16bitですがプロテクトモードを持ってましたね。
ただ386以降に比べて制約があるので386以降のプロテクトモードのことを
32bit(プロテクト)モードと言っているのかもしれません。

386以降のプロテクトモードでは16bitオペランドがデフォルトのセグメントと
32bitオペランドがデフォルトのセグメントが選択できます。
これがUSE16とUSE32ですが、ということは
プロテクトモードでも16bitと32bitモードがあると言えなくもない?

まあ普通は32bitモードといったら386以降のプロテクトモードで、
16bitモードといったらそれ以外ということになるのでしょうか。

Dune  [2000/11/21 Tue 01:41:33]  [203.182.243.81]

はじめて投稿させていただきます。

>kuuさん
16bitと32bitですが
私はアプリケーションが要求するプラットフォームで
考えてます。(単純ですけど(^^;)

Cの話で恐縮ですけど、
まったく同じソースコードでも、コンパイラによって、
プラットフォームが変わってきますよね。
例えばVC5.0とかでコンパイルしたDOSアプリは、
DOS環境ではうごかなかったりします。
(windowsの「MS-DOSモードで再起動」でもうごかないんですからこまったもんです(^^;)
「winでしか動かないから、32bit」なんていうつもりはないんですが
(正確にはexeフォーマットの違いでしょうし)
ただ、VC5でつくったDOSアプリは32bit用に最適化されてると思いますし、
OSが16bitから32bitにうつったから
「32bitアプリケーション」っていうものがでてきたわけですから、
こういうのも一つの目安かな。と思ったわけです
(ほんとに単純だ(汗))

なんだか、まとまり無い文ですね
すいません(^^;ゞ

へろへろ  [2000/11/20 Mon 17:54:45]  [133.72.168.2]

Ichiさん、毎度どうもありがとうございます。

アセンブラをするために買った中古のノート(486)9000円
では、2つまでしか押せませんでしたが違うノートで
プログラムを動かしたところ同時押しができました!!
本当にありがとうございました。


T.K  [2000/11/20 Mon 11:28:58]  [210.161.218.146]

はじめまして

 アセンブラをやろうと思ってから1年くらい経ちますが、いまだに超初心者です。書籍はある程度見ているのですが、DOS/V関係の書籍がなかなか手に入らず、行き詰まっています。そこで私は、DOS/V関係の本がオンデマンドでよみがえればと、下記のサイトへDOS/V関係の書籍数冊をリクエストしました。もしよろしければ、投票していただければ幸いです。

http://www.d-pub.co.jp/voice/index.html

また、DOS/V関係の本を売っている場所をご存知の方はお教え願えないでしょうか?

まことに勝手な願いではありますが、どうかよろしくお願いします。
Ichi  [2000/11/19 Sun 02:30:16]  [210.147.8.2]

to へろへろさん
> 2つまでは、うまくいくのですが3つ目がキーボードを
> 押してもフラグが立ちません。
キーボードの問題かもしれません。
(同時押しがうまく出来ないキーボードがあるんです)
3つの同時押しが、どの組み合わせでも出来ないのか、
出来る組み合わせがあるのかを確認してみてください。
へろへろ  [2000/11/18 Sat 21:34:06]  [133.72.168.2]

キーボードの同時押しルーチンで。。。
INT 09をフックして、フラグで判定しているのですが、
2つまでは、うまくいくのですが3つ目がキーボードを
押してもフラグが立ちません。
3つ目をもらうには、ポート60hにコマンドを出力しなければ
ならないのでしょうか?


kuu  [2000/11/17 Fri 01:08:57]  [202.219.232.191]

cels様
お答えありがとうございました。
お礼が遅くなって失礼致しました。
申し訳ございません。

> なお、MS-DOS上で32bitコードを実行するには
> 通常DPMIやDOSエクステンダなどを使います。

「実戦的プロテクトモード研究」なる本を探してきました。
#更に知らない世界が広がってます(^^;;

こういうことをしなくても、Windows上で組めば「USE32」
プロテクトモードアプリになるんですよね。


***

なんだか最近16bit、32bitとかいう言い方がよくわからなく
なってたりします。LASMのマニュアルとかで、「16bitモード」
「32bitモード」とかいう用語が出てきます。
この「32bitモード」というのはプロテクトモードのことだと
思うのですが、「16bitモード」というのは
・リアルモード
・16bitプロテクトモード(USE16)
の2つがありうるのでは?とか思ったりするのですが。

x86系では16bitモード、32bitモードという言い方は
普通になされるのでしょうか?

16bitプロテクトモードというのはWindows3.1の時の
ウィンドウアプリケーションがそうだと思うのですが。
(VC1.x?で作成されるウィンドウアプリケーション)

---
kuu

meisyuu  [2000/11/15 Wed 16:24:36]  [202.48.8.203]

はじめまして、みなさん。

ご存知の方がいらっしゃったら、教えて頂きたいのですが。
IA-32(80486)で、プロテクトモードの割込み発生時のス
タックの動きってどうなってるんでしょうか?
インテルのマニュアルを読んでも、どうもよくわからないで
すよ。
どういうレジスタが具体的にPUSHされて、RETIで割込みから
抜ける時は、スタック内の情報がどのレジスタに戻されて、
元のルーチンに戻るのでしょうか?

どなたか、お願い致します。

けんぼぉ  [2000/11/13 Mon 11:17:43]  [210.163.178.219]

ども、けんぼぉです。

♪ダイケンさん
はじめまして。
> 川鉄のKL5C80A16の命令
> LD A,I LD A,R LD I,A LD R,Aの使い方を教えてください。
かなりの遅レスになってしまいました。(2000/10/30)
各レジスタの使い方というか、まず両レジスタの説明をします。

I レジスタは割り込みモードを2にしたときに、割り込み処理
ルーチンにジャンプするための、ジャンプ先のアドレス表
(割り込み処理ルーチンエントリーアドレステーブル)が存在
するアドレスの上位8ビットを表すためのレジスタです。
下位8ビットは割り込みが発生したペリフェラルからベクトル
(V レジスタ)という1バイトのデータが送られてきます。
この2バイトを使って表されるアドレスから、そのペリフェラルの
割り込み処理ルーチンへのアドレスを読み込み、ジャンプします。

サンプルソース(かなり省略)
(ペリフェラルに対してもベクトルの設定を予めしておかなくては
いけません。詳しくは各ペリフェラルの資料を参照の事)
;ペリフェラル1(V=00)、ペリフェラル2(V=02)、ペリフェラル3(V=04)の時
           :
     LD   A,070h ;アドレステーブルの上位8ビット(ここでは070xxh)
     LD   I,A
     IM   2     ;割り込みモード2
     EI         ;割り込み許可
           :
;以下アドレステーブル
7000h  DEFW PERIF1 ;ペリフェラル1の割り込み処理ルーチンのアドレス(以下同様に 2,3)
7002h  DEFW PERIF2
7004h  DEFW PERIF3

ペリフェラル1から割り込みがかかると、PERIF1 番地へジャンプします。
ペリフェラル2からの割り込みは I(070h) と V(02h)で 07002hになり、
PERIF2 番地にジャンプします。

R レジスタはリフレッシュ用のアドレスを指しているレジスタです
(下位7ビットを使用)。フェッチ毎にインクリメントされます。
R レジスタ(LD A,R)は擬似乱数を発生させる時に使ったりします。

> ROM(128KB)RAM(128KB)のバンク切り替え方法も教えてください。
これは川崎のサイトに PDF の資料がありますので、そちらを
参照してください。(第1〜6章 P41〜)
http://www.kawatetsu-lsi.co.jp/assp/micro/pdfs/index.htm

へろへろ  [2000/11/12 Sun 23:23:24]  [211.13.144.55]

Ichiさん、情報どうもありがとうございます。
Ichi  [2000/11/10 Fri 23:28:05]  [210.147.8.2]

to へろへろ氏:
それでしたら、Ralf Brown's Interrupt Listが参考になると思います。

Ralf Brown's Home Page: http://www.pobox.com/~ralf/

で、INT 09をフックして、キーが押さ/離される度に
フラグを変化させていけばよろしいかと。
cels  [2000/11/10 Fri 22:33:17]  [203.180.146.49]

to サナダムシさん

基本的にはCでも書けます。

Windows上からCD-ROMのセクタを読むには
32bit→16bitサンク経由でMSCDEXを呼びます。
具体的な方法はここ↓
http://www.microsoft.com/JAPAN/support/kb/articles/J024/2/05.htm

NT/2000の場合はこの方法は使えなくて、
CreateFile/ReadFileを使います。

また、ASPIを使って読む方法もあります。
これを使うにはASPIがインストールされている必要があります。
詳細はMSDNライブラリのDDKの項目を読んでください。

デジタルコピーの有無を調べるならQサブチャネルを読む必要があると思いますが、
ASPI経由なら読めます。
MSCDEX経由だとわかりません。

へろへろ  [2000/11/10 Fri 20:13:50]  [133.72.168.2]

DOS/Vでキーボードの同時押しのルーチンを作ろうとして
苦戦しています。
DOSでベクタを書き換えたりしているのですが
うまく帰ってこないのです。
英語でもいいので資料を探しています。
どうか、教えてください。
サナダムシ  [2000/11/09 Thu 13:40:05]  [210.197.210.1]

行き成り質問失礼します。実はCD2WAV32の様にCD-DAのデータを直接
ドライブ側から読み出して、それに加工を加えるようなソフトを作ろ
うと考えています。具体的にはCOPY検査ビットを自由に書き換えるソ
フトを目標にしています。もちろん悪用するとかじゃなく、素で自分
の実験題材です。

どのような手順を踏めばWindows上から直接ドライブを操作させるこ
とが可能になるのでしょうか?アセンブラを使ってのDLL開発しか方
法はないのでしょうか?もし、参考文献やHPなどありましたら教えてください。
力卜  [2000/11/06 Mon 22:08:15]  [192.51.44.11]

なべぞうさん。
私はその本も tasmも持っておらず内容/動作確認できませんので、
適当に思いついたことを挙げます。

1.アセンブリソースが極めて不自然。本当に動作するものなの?

普通は、DOSプログラムには、DOSプログラムを終了させるための
ファンクションコール発行を行います(例えば以下のようにして)。
mov ax,4c00h
int 21h
しかし、これがソースには書かれていません。
また他の方からも指摘がありますが、プログラムの開始アドレス
の指定がなされていません。プログラム中にラベルがないのが
気になります。
その本では、このプログラムについてどう説明していますか?
# 本文で各命令の動作を説明しているだけだったりしませんか?

実際、このプログラムを動作させてみたとしても、動作が実感
できるようなこと(文字列表示など)は一切しないし、プログラム
が終了しないでアセンブリソースで記述した命令以降のメモリ上に
あるゴミのコードをそのまま実行して、暴走すると思います。

著者が、実際に動作する体裁っぽくコードを書いたけど、まったく
動作確認していない(実はバグあり)ということも考えられます。

2.そのtlinkは16ビットアプリをリンクできるの?

お手持ちのtlinkは16ビットアプリをリンクできるのでしょうか?
16ビット/32ビットアプリの両方ともリンクできるとしたら、16ビット
アプリリンク用のコマンドラインオプション指定はないのでしょうか?
製品に添付のマニュアルにはどう書いてありますか?

また、tasmも16ビットオブジェクト出力用オプションがあるのかも
知れません。

tlink(とtasm)のオプション指定が解決したら、DOSSEG疑似命令無視の
警告メッセージが表示されなくなるかもしれません。

あと、わかることといえば、ソースは.COM形式の実行ファイルを
作ることが不可能な書き方をしているということでしょうかね。
(これは今回のリンクがうまくいかない件とは無関係ですね)

ではでは。

なべぞう  [2000/11/03 Fri 05:44:27]  [211.127.213.118]

あれれ?

どうも申し訳ございません。
ここのBordの書き込み方をよく知らなかったもので、文中のスペース
が削除される方式とは気がつきませんでした。
ただでさえ読みにくい上に、この有様では(^^;

決して嫌がらせではありませんので、どうかご容赦ください。

なべぞう  [2000/11/03 Fri 05:39:14]  [211.127.213.118]

 AFさん、初めまして。お返事どうもありがとうございます。
 え〜と、アセンブラなんてやってみたのは生まれて初めての経験です
ので、なにもかもわからないことずくめなんです。それで、とりあえず
本に載っているコードをそのまま丸写しにしたんですが、本の通りにし
# DOSSEG #ているのにLinkできないんです。
# .STACK 200H #
# .DATA #本のコードをそのまま載せるのもど
#X DW 0A5C6H #うかとは思いましたが、ごらんのと
#Y DB 22H #おりただ命令を一通り使っているだ
# .CODE #けの空しい物なので、よろしいかと
# MOV AX,@DATA #思い、Upしました。
# MOV DS,AX #
# MOV AX,05A5H # ひょっとして僕の環境ではセグメ
# SHL AX,1 #ント疑似命令は使えないのでしょう
# SHL AX,1 #か?
# RCR AX,1 #
# MOV AL,0 #ついでに買った「初めて読む8086」
# MOV AH,0 #の方のコードはちゃんと実行できた
#; #(DEBUGコマンドを使うやつ)ので
# MOV BX,100 #どーにも納得がいかなくて毎日イラ
# MOV AX,BX #イラしっぱなしです(笑)
# XOR AX,0FFFFH #
# INC AX # このソースで何か判ることがおあ
# NEG BX #りでしたら教えていただければ幸い
# MOV X,BX #です。
# MOV Y,BL # どうか救いの手を!!
#; #
#L1: # ということで、今はTASMの方は考
# DEC CX #ないようにして上の「8086」の
# JGE L1 #コードをDelphiのインラインアセ
#; #ンブラに変換して気を紛らわせてい
# MOV DX,0FFH #ます。
# PUSH DX #
# INC DX # 読みにくい文で失礼しました。
# POP DX # コードを載せたので極力長文にな# INC DL #ない様、スペースを有効活用?
# END #させていただきました。

 
ルーレット  [2000/11/02 Thu 15:18:31]  [131.113.234.116]

NASMを使用している初心者です。質問なのですが、VESAモードにてバンク切り替え込みの一点描画ルーチンを作成し、256色のカラーを切り替えながらタイル塗りをすると、動作が妙に遅くなってしまいます。↓
(routine called from Turbo C)
pixel_locate:
mov ax,word[bp+8] ;AX=Y
mov dx,word[bp+6] ;Offset=(1024*Y)+X
mul dx ;
add ax,word[bp+4] ;
adc dx,0 ;DL=bank, AX=Offset
mov bx,ax ;BX=Offset to VidSeg
cmp dx,word[currbank]
je write_pixel ;If DX=Currbank jump

bank_setup:
push bx
mov bx,0 ;Set bank_mode
mov ax,0x4f05 ;Call VESA bank
int 0x10 ;change function
mov word[currbank],dx
pop bx

write_pixel:
mov ax,word[bp+10] ;Set pixel color
mov byte[es:bx],al ;Store byte on screen
一応過去ログで紹介されている(S)VGAのページを漁ってはみたのですが、バンク切り替えの効率的な方法があれば、どなたか教えていただけないでしょうか。
ちなみに、開発環境はCyrix MXPR-200MHz, NVidia TNT2-64(VRAM32MB), PC-DOS7.0/V(USモード), 対象モードはVESA105h(1024*768*256色)です。
Daisuke 改め JUNKUN  [2000/11/01 Wed 23:54:41]  [202.23.191.20]

したの投稿は間違いです。けど、
将来的には32ビットのソフトを作りたいのですが・・・
JUNKUN  [2000/11/01 Wed 23:52:12]  [202.23.191.20]

みなさん、はじめまして。今回、アセンブラをはじめようと、
はじめてのMASMと言う本を買い勉強をはじめたのですが、
一番最初のotenki.asmという例題を入力したところ
以下のようになりまったく進めません。
ためしに、他のソースもやってみましたが、結果は
同じでした。私には訳がわからなかったのでどうか
みなさんよろしくお願いします。

C:\Project\boot1>ml otenki.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.

Assembling: otenki.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/z2
"otenki.obj"
"otenki.exe"
NUL
LINK : warning LNK4044: unrecognized option "z2"; ignored
otenki.obj : warning LNK4033: converting object format from OMF to COFF
otenki.obj : fatal error LNK1190: invalid fixup found, type 0x0001
もっちー  [2000/11/01 Wed 17:03:42]  [133.70.244.54]

あれ、もしかして僕の回答的外れですか?だったら失礼しました。/z2ってなんでしょうってことでしょうか?
もっちー  [2000/11/01 Wed 16:55:32]  [133.70.244.54]

Daisukeさんこんにちは
僕もこんなことがありました。リンカはエラーやワーニング(warning)の内容から多分32ビット用のものを使っていると思います。
プログラムがどういうものか具体的にはわかりませんが、プログラムは多分16ビットモードで動くように作ってあるんじゃないでしょうか。たとえば、プログラムの中にint21hとかがはいってたり、
.model が shortだったりです。リンカを16ビットモードのものに変える必要があるのではないでしょうか。ちょっと無責任ですいません。
Daisuke  [2000/11/01 Wed 15:01:02]  [202.23.191.20]

みなさん、はじめまして。Daisukeです。
今回、アセンブラを勉強しようと思い、初めて読むMASMを買って、
そこに書かれている、OTENKI.ASMをアセンブルしようと思ったら、
以下のようになりました。この原因ってなんでしょうか?
素人のわたしにはさっぱりわかりませんでした。
またどのようにしたら、アセンブルできるのでしょうか?

C:\Project1>ml otenki.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.

Assembling: otenki.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/z2
"otenki.obj"
"otenki.exe"
NUL
LINK : warning LNK4044: unrecognized option "z2"; ignored
otenki.obj : warning LNK4033: converting object format from OMF to COFF
otenki.obj : fatal error LNK1190: invalid fixup found, type 0x0001
AF  [2000/11/01 Wed 02:22:12]  [210.233.160.6]

なべぞう さんこんにちは、
AF です。昔使っていた TASM の話がなつかしいので顔だします。
# 本当は今も使っていたりしますが...

> #Turbo Link Version 7.1.32.2. Copyright (c) 1987,1996
> #Borland International
> #Warning: DOSSEG directive ignored in module C:〜ファイル名
> #Fatal: No program entry point

たぶんアセンブラソースの最後に、

END 開始位置のラベル

と書けば良いはずです。例えば END ProgramStart というふう
になります。ただ、ソース全体を眺めていないので何とも言
えませんがアセンブラで書かれたプログラムを動かそうとする
にはもう少し頑張りが必要な状態なのかなぁ、と心配しています。

でも Delphi が使えるとインラインて
asm(改行)mov al,20h(改行)end;(改行) と書けたり、
Borland C++ Suite に含まれている BC++ も Turbo Pascal も
インラインてアセンブラが使えるので手軽に試すにはインライン
アセンブラをお勧めします。

# ちょっとレジスタの使用規約がめんどうなのですが...

RTL のソースコードも Borland C++ Suite についているようなので
C0x.asm とか色々眺めてみるのもいいかもしれません。

# マクロとか IF...ENDIF がたくさんあってちょっと難解ですが...

AF  [2000/11/01 Wed 02:22:02]  [210.233.160.6]

なべぞう さんこんにちは、
AF です。昔使っていた TASM の話がなつかしいので顔だします。
# 本当は今も使っていたりしますが...

> #Turbo Link Version 7.1.32.2. Copyright (c) 1987,1996
> #Borland International
> #Warning: DOSSEG directive ignored in module C:〜ファイル名
> #Fatal: No program entry point

たぶんアセンブラソースの最後に、

END 開始位置のラベル

と書けば良いはずです。例えば END ProgramStart というふう
になります。ただ、ソース全体を眺めていないので何とも言
えませんがアセンブラで書かれたプログラムを動かそうとする
にはもう少し頑張りが必要な状態なのかなぁ、と心配しています。

でも Delphi が使えるとインラインて
asm(改行)mov al,20h(改行)end;(改行) と書けたり、
Borland C++ Suite に含まれている BC++ も Turbo Pascal も
インラインてアセンブラが使えるので手軽に試すにはインライン
アセンブラをお勧めします。

# ちょっとレジスタの使用規約がめんどうなのですが...

RTL のソースコードも Borland C++ Suite についているようなので
C0x.asm とか色々眺めてみるのもいいかもしれません。

# マクロとか IF...ENDIF がたくさんあってちょっと難解ですが...

S  [2000/10/30 Mon 21:02:23]  [210.250.122.218]

けんぼぉさん、どうもありがとうございました。
S  [2000/10/30 Mon 21:01:11]  [210.250.122.218]


紅 かぐやさん、ありがとうございます。    [2000/10/30 Mon 20:15:12]  [133.72.168.2]

ビットマップ、わかりました!!
今は、パレットをいじるのに苦戦しています。
ダイケン  [2000/10/30 Mon 12:11:14]  [211.7.1.2]

川鉄のKL5C80A16の命令
LD A,I
LD A,R
LD I,A
LD R,A
の使い方を教えてください。
また、MMU機能を使ったとき、ROM(128KB)RAM(128KB)のバンク切り替え方法も教えてください。
けんぼぉ  [2000/10/30 Mon 11:28:03]  [210.163.178.219]

ども、けんぼぉです。

♪Sさん
はじめまして。
> Z80の割り込みに関して誰か教えてもらえないでしょうか。
こちらを参照してみてください。
http://203.140.25.48/x/apony/elec/elec10/elec10.html
http://delegate.uec.ac.jp:8081/club/koken/~ubora/kouza.html
http://www.st.rim.or.jp/~nkomatsu/ICcollection.html#ZilogTarget

z80 の本は図書館にあるかもしれません。図書館の端末で
「アセンブラ」や「マシン語」で調べてみてください。
http://www.cqpub.co.jp/hanbai/books/32511.htm

他にもロボット検索を使って「z80 割り込み」で検索すると、
色々と出てきます。私は Google を使ってみました。
http://www.google.com/intl/ja/

あと、今後質問をする方は、何を使っているかっていうマシンや
OS (CPU) 等の情報を必要範囲内で書いてもらえると、他の方々も
もっと込み入ったところまで答えやすくなると思います。
必要範囲内ってところが難しいと思いますが。

  [2000/10/30 Mon 01:12:25]  [210.250.120.174]

はじめまして。大変失礼だと思うんですが、Z80の割り込みに関して誰か教えてもらえないでしょうか。まだ初心者でぜんぜんわかりません。あとどういう本を読めば、勉強になるか教えていただけないでしょうか?ぜひともよろしくお願いいたします。
紅 かぐや  [2000/10/29 Sun 06:18:11]  [203.140.13.18]
Selene

へろへろさんへ

bmpの内部ですが、↓のアドレスで英語のやつを拾うとかあります。
http://www.wotsit.org/

とか、あります。

検索で、ビットマップとか入れたら結構引っかかったような気もします。
結構前にしたことなので、よく覚えてませんが(^^;;

MSDNの方で、BITMAPFILEHEADERとBITMAPINFOHEADERとRGBQUADなどの
構造体なんかも見ると良いと思います。
A.T  [2000/10/29 Sun 04:42:04]  [210.251.59.162]

 h8300-hms-gcc抜きで、h8300-hms-asと、h8300-hms-ldでプログラ
ムを組むときのやり方がイマイチよくわからないのですが、・・・
 このh8300-hms-asというのはリンカスクリプトではなく、コードソ
ースに直接アドレスを記入して指定するというようなことはできないよ
うになっているのでしょうか?
 また、h8300-hms-gccでコードを書いたときもそうですが、ソースコ
ード自体とは別の「膨大」なコードが附加されるのを避ける方法とかに
はどのようなものがあるのでしょうか?(秋月のH8のCコンパイラとの
比でいくと、[100]対[1000]くらいになったりします)。
4KbyteのRAMにプログラムを転送して実行させるプログラムを書いた
のですが、上記のような理由で、Linuxの方でgccを使う環境ではむず
かしいといったような事態になっています。
 できれば、Linuxの方でも使いたいと思いますので、よろしくご教示
をお願いいたします。

 


へろへろ  [2000/10/28 Sat 19:37:20]  [133.72.168.2]

bmpをアセンブラで読み出してVRAMに書きたいのですが
BMPのファイルの仕様がわかりません。
(バイナリファイルで開いてもよくわかりません)
BMPは、どうなってるのかおしえてください。
なべぞう  [2000/10/28 Sat 00:27:35]  [208.200.172.240]

 みなさま初めまして、ナベゾウと申します。
 どうぞよろしくお願いします。

 早速ですが、三ヶ月ほど前、Borland C++ Suiteというのを購入いた
しました。僕はDelphiを勉強中で、TurboPascalがおまけで付いてくる
のに気が引かれて思わず買ってしまったのですが、一昨日、古本屋で
「TurboAssembler入門」という本を購入したせいでアセンブラにも興
味を持ち、その本の通りにソースを書いてアセンブルして、いざLiNKと
いうときになって、こんなメッセージがでるんです。

#Turbo Link Version 7.1.32.2. Copyright (c) 1987,1996
#Borland International
#Warning: DOSSEG directive ignored in module C:〜ファイル名
#Fatal: No program entry point

 どうやったらLinkできるか教えてほしいのです。
 ひょっとしたらすごい初歩的な質問かもしれませんが、Pascalの知識
も満足にない僕に愛の手?をお願いいたします。

 ちなみにOSはWindows2000ですが、ひょっとしてこれのせいでしょう
か?
 
紅 かぐや  [2000/10/27 Fri 02:55:33]  [203.140.13.225]
Selene

グリポンさんけんぼぉさんレスありがとうございます。

>グリポンさん
今まで、exeが一番妥当だろうと思っていたので、
16bitのobj形式をexe形式に変換する項目を読んで、
リンクさせるものが必要だと勘違いしていたみたいですね(^^;
ありがとうございました。

>けんぼぉさん
はじめまして。
早速お気に入りに入れました。
ありがとうございました。


また、お世話になるかもしれませんが、皆様よろしくお願いします。
グリポン  [2000/10/27 Fri 01:10:37]  [210.235.164.62]
JP-DOS

>紅かぐやサン
 すみません。説明の仕方が悪かったですね。
 オイラのサイトにNASMの翻訳途中のやつありますが…

 obj指定のときは-fオプションが必要です。
 ただ標準ではcom指定なのですっぽかしてただけです。
#今のところobjにするほど大きなプログラム作らないので(汗

 で、objファイルをexeファイルにするには…
http://guriponn.tripod.co.jp/others/japanise/CHAPTER7.TXT
 でも見てください(あくまでも未公開ですが)

 参考になったでしょうか?
けんぼぉ  [2000/10/26 Thu 10:23:38]  [210.163.178.219]

ども、けんぼぉです。

♪紅かぐやさん
はじめまして。
↓にNASMの説明がありますよ。(第1、2回を参照)
http://www.geocities.co.jp/SiliconValley/9979/asmhead.html

あと、英語のサイトはこちらを使ってみて下さい。
http://www.excite.co.jp/world/

♪にゅ〜び〜さん
はじめまして。
最初にお断りしておきますが、ここはアセンブラに関する
掲示板なので、手短にいきます。
UNIX を使えるなら procmail で C言語を使わずに簡単に
出来ます。C言語で作るのなら、↓の掲示板をあたってみて
ください。
http://www.taillight.com/program/

紅かぐや  [2000/10/25 Wed 14:23:57]  [210.237.143.182]
Selene

グリポンさんレスありがとうございます。

いらないんですか?
NASMマニュアル機械語翻訳のほうに、使ったほうがいいとか言う怪しい文面を見たような気がしたんですが・・・・
気のせいだったんでしょう(^^;

今、 nasm16.exe ソース名 -f obj -o 出力ファイル名

としているのですが・・・・・

obj形式を選択するフラグはいらないんでしょうか?
たびたびお聞きして申し訳ありません(滝汗)
グリポン  [2000/10/25 Wed 11:58:51]  [210.235.164.62]
FreeDOS (JP)

ちょっと気になったのでレスします。

>紅 かぐやサン
 なにかリンクさせる必要があるのでしょうか…?
 とりあえず、コンパイルするときに
   nasm -o出力ファイル名 ソースファイル名
 とかやっとけばいいと思いますけど。
 出力ファイルは.comフォーマットが使えます。

 なんかまだ分かりにくいですね。説明求む。
 あと日本語マニュアルはここからリンクありますよ。

へろへろ  [2000/10/23 Mon 19:52:41]  [133.72.168.2]

今、VRAMに直接書き込んでアイコンみたいのを動かして
遊ぼうとしています。
しかし、いろんな色を同時に書き込むことができません。
(VGAの16色、DOS/V、DOSでMASMを使ってる)
ソフトバンクの本のテクニカルリファレンスマニュアルと
プログラミングリファレンスを参考に書き込みモード3を
使ってやってます。

どうやって同時に色を出すのか教えてください。
また、ネット上に資料があれば教えてください。

紅 かぐや  [2000/10/23 Mon 06:00:05]  [203.140.13.34]
初めまして

初めまして、皆様。
紅かぐやと申します。

最近になってアセンブリ言語を始めてみようと思ったのですが・・・
NASM落として、使ってみたのですが・・・・
どうもいまいちわからないことがあるのです。

MS-DOSで使用するため、16ビット版のNASM落としてコンパイル
したまでは良かったんですが・・・・
MS-DOSで使用するためには、何かリンクさせないと行けないような
事があるのですが・・・・
それは一体何なのでしょうか?
NASMで検索すると英文ばかりで・・・・ちょっとわからなかったもので・・
どうかよろしくお願いします。

長文で申し訳ありません
にゅ〜び〜  [2000/10/21 Sat 21:02:17]  [202.247.163.116]

はじめまして。
実は今わからない事があるのです。

UNIXのメールサーバに送られて来たメールを
受信して、メールの中身を解析してデータベースに
登録するという事をC言語でやりたいのですが、
よくわかりません。

UNIXのメールサーバに送られて来たメールを
受信するプログラムってどうやって作成するのでしょうか?
#メールデーモンを制御するのかなぁ?

また、「ここを勉強すればいいよ」でも結構です。

よろしくお願いします。

うっちー  [2000/10/20 Fri 13:17:35]  [210.226.78.66]

どうもです。

MPC860のサンプルプログラムを見つけました。

http://www.mot.com/SPS/RISC/cgi-bin/ncsp/ncsp.cgi

メモリ管理の所を基本から勉強しなおした後、じっくりマニュアルを読み直したら理解できました(ほんの一部ですけど)
お騒がせしました(__)
dtx  [2000/10/18 Wed 15:02:19]  [211.9.252.5]

To 土野明日香さん

> INT 21h FNC.440Dhのサブファンクション67hってなんでしょうか?
> どうもMS-DOS7.0(MS-Windows95)から採用されたようなんですが。

FAT32用の拡張されたファンクションです。

VC6に付属しているMSDNライブラリで検索すると、詳しい使い方などが出てきました。
開発ツールなどを持っているのでしたならば、フルインストールして確認してみてくだ
さい。キーワードFAT32で、FAT32関連のファンクションは固まって検索されるはずです。

#「Windowsに隠されたDOSの秘密」といった本に、FAT32ファンクションが解説されて
いるという話も聞きましたが、私は確認していません。
もっちー  [2000/10/18 Wed 12:36:06]  [133.70.143.44]

はじめまして、もっちーと申します。
僕は今CeleronでWindowsアプリを
アセンブラで作ってます。昔は486のPC98機で
やってました。
そこで質問なんですが,Pentiumでも、やっぱり
FPUと普通の命令は並列に動作してるんですか?


うっちー  [2000/10/17 Tue 17:33:35]  [210.226.78.66]

今、MPC850の初期化のところで苦しんでおります。(特にキャッシュのところ)
石のマニュアルを読んでいるのですが、自分の経験不足と知識不足のためよくわかりません・・・。web上でサンプルプログラム(キャッシュの初期化)を探しているのですが見つかりません。
知っている人がいたら、教えてください。
よろしくおねがいしますm(__)m
けんぼぉ  [2000/10/16 Mon 10:25:55]  [210.163.178.219]

ども、けんぼぉです。

♪澤口@一升金さん
はじめまして。
> Power PC 研究家になれますね。
そうですね、あれだけの本を読破したら、かなりの
専門家になっちゃうと思います。(^^)
私も Power PC は今後の研究対象にしたいと思って
情報だけは集めています。PPC 自体は持っていません。

> 八重洲ブックセンターの検索でひっかかって来ましたから
> 取り寄せは可能でしょう。
私(達)がアセンブラをはじめた頃より、入手困難になっ
てきています。15年程前は、普通の本屋でアセンブラの本
が10冊は簡単に手に入っていたのが嘘のようです。

アセンブラの関連本は、まず図書館で探すのが良いと
思います。近くの図書館にある端末で探したところ、
MSX や PC98 のアセンブラ関連本が結構ありました。http://www.inh.co.jp/~yuichiro/opac.html

こんな所もありました。メアド等の登録が必要ですが、
欲しい本を登録しておくと、オークションより安全に
安く手に入るかもしれません。
http://www.bizseek.gr.jp/book/

> Power PC も発表当時は同クロックでペンティアムの2倍
> から3倍の演算性能といわれてかなり期待されてたんです
> けど
そうだったんですか。発表当時(93年)から2,3年前まで
パソコンを絶っていたので、全然知りませんでした。
期待されてた分、あれだけの数の Power PC 関連本が
出まわったわけですね。

> 引っ張られてしまいますから大して性能差がでてこなかった。
> やっぱりバランスと安定感が大きなファクターですね。
そうですね。無駄な足枷はユーザに跳ね返ってくるだけです。
少しは CPU が遅い方が、昔の MSX みたいに可愛げがあって
いいと思うんですけど。
cels  [2000/10/15 Sun 14:09:59]  [210.149.132.15]

celsです。

to kuuさん:

普通はVC1.51がプロテクトモード用のコードを生成することは
ないと思います。
.386pを指定するとプロテクトモード専用のコードになるわけではなく、
特権命令がアセンブルエラーにならない、というだけです。
ソース中で特権命令を使わなければ.386と変わりません。
Hello, worldをコンパイルしても特権命令は使われません。
使われてたら、EMM386等を組み込んだ状態(仮想8086モード)で実行できません。

32bitコードを生成するVCでHello, worldをコンパイルすると
32ビットセグメント(USE32)になりますが、
やはり特権命令は使われないはずです。
使おうとするとOSにトラップされてしまうからです。

なお、MS-DOS上で32bitコードを実行するには
通常DPMIやDOSエクステンダなどを使います。

kuu  [2000/10/14 Sat 13:00:24]  [202.219.232.160]

澤口様
お答えありがとうございました。

>.386p という疑似命令は、アセンブル時にプロテクトモード用の
>ニーモニックを見つけてもエラーとしない、というだけの意味合
>いで、プログラマが自分で CPU をプロテクトモードに遷移させる
>コードを記述しなければ、 CPU はプロテクトモードにはなりませ
>ん。

ということはアセンブラがプロテクトモード用に見える
ソースをリアルモード用(DOS用)に(わざと)アセンブル
してるということでしょうか、VC1.51では。

試しに前出のHello Worldのアセンブラソースをプロテクト
モードOKのアセンブラ(ml.exe?)にかけたらプロテクトモ
ード(USE16)用のコードが出来たりするでしょうか?

またWin32上ではCで書いたHello Worldでもプロテクトモード
(USE32)アプリになるということでよろしいでしょうか、

#という判断もアセンブラソースリストを出力させてみたら
#USE32とセグメントの設定がされていた、ということによる
#のでまた違ってるかもしれませんが。

もっといろいろ試して遊んでみます。
#ml.exeの環境を作らなくてはいけませんが。

>C コンパイラでは、データ転送やレジスタ待避などに一部の32bit
>命令を発生させて実行の効率化をはかるみたいです。

確かに一部DWORD指定(オペランド・サイズ・プリフィックス付)
が入ったりしていますね。

どうもありがとうございました。

澤口@一升金  [2000/10/13 Fri 18:41:16]  [211.4.198.33]

澤口@一升金です。

to けんぼぉさん:

すごい! Power PC 研究家になれますね。
Power PC インターフェースブックと Power PC 概論は
八重洲ブックセンターの検索でひっかかって来ましたから
取り寄せは可能でしょう。

http://www.yaesu-book.co.jp/

Power PC も発表当時は同クロックでペンティアムの2倍
から3倍の演算性能といわれてかなり期待されてたんです
けど、結局メモリやストレージ、グラフィックやLANの
性能で引っ張られてしまいますから大して性能差がでてこ
なかった。
やっぱりバランスと安定感が大きなファクターですね。
けんぼぉ  [2000/10/13 Fri 10:11:02]  [210.163.178.219]

ども、けんぼぉです。
PowerPC関係の本についての追加です。
ほとんどの本が現在入手困難です。

PowerPCマイクロプロセッサC.H.R.P.
著者 Apple Computer
ISBN 4-89369-482-0 出版年月 96-12 価格 3884円
出版社 インターナショナルトムソンパブリッシングジャパン

PowerPCインタフェースブック
著者 ロン・ラーメル/ダン・ラーメル 著
ISBN 4-931356-22-2 出版社 プレンティスホール出版
出版年月 96-05 価格 5437円

Power PC概論
著者 Dipto Chakravarty/Casey Cannon 著
ISBN 4-7561-0509-2 出版社 アスキー
出版年月 95-07 価格 4369円
http://www.ascii.co.jp/books/detail/4-7561/4-7561-0509-2.html

PowerPCレボリューション
著者 ジェフ ダンテマン/〔ほか〕著
ISBN 4-89433-004-0 出版社 富士ソフトウエア
出版年月 95-02 価格 3786円

PowerPCアーキテクチャ
定価 7,034 ISBN 4900718211

PowerPC解説 POWERからPowerPCへ
シュロモ・ウァイス
定価 6,014 ISBN 4900718203

PowerPC入門
ジェームス・E・スミス, シュロモ・ウェイス(著)
監:日本アイ・ビー・エム(株)
ISBN:4-900718-20-3 サイズ:A5判 ページ数:480

長くなってしまいました。すみません。m(_ _)m
うっちー  [2000/10/12 Thu 12:58:51]  [210.226.78.66]

to 澤口@一升金さん&けんぼぉさん

教えてくれてありがとう!
早速調べてみます。またわからないことがあったら教えてください。
けんぼぉ  [2000/10/12 Thu 10:06:55]  [210.163.178.219]

ども、けんぼぉです。

♪うっちーさん
はじめまして。
>PowerPC系のアセンブラを始めたいと思っているのですが、
>良い入門書またはWebページを知っている方は教えてください。

Inside PowerPC
SOFTBANK
Jerry L.Young 著
ISBN 4-89052-606-4 \3200
PowerPC(60x系) のニーモニックなどが載っています。
ちょっと入手困難です。私は図書館で見ました。

コンピュータ悪のマニュアル 3
こちらは書店でよく見かけると思います。
Mac(68000系)でのアセンブラについて、書かれています。

澤口@一升金  [2000/10/12 Thu 03:14:41]  [211.4.198.31]

澤口@一升金です。

to うっちーさん:

ここで PowerPC の仕様を把握し

http://www.chips.ibm.com/products/powerpc/

PowerMAC でトレーニングする

http://developer.apple.com/tools/mpw-tools/

というストーリーではどうでしょう。

商用ではここが安いです。残念ながら、 PowerPC
ボードの販売は終了したみたいですが。

http://www.yellowsoft.com/contents/comp.htm
うっちー  [2000/10/11 Wed 17:03:56]  [210.226.78.66]

はじめましてうっちーと申します。
PowerPC系のアセンブラを始めたいと思っているのですが、良い入門書またはWebページを知っている方は教えてください。
よろしくお願いします。


澤口@一升金  [2000/10/11 Wed 11:27:57]  [211.4.198.14]

澤口@一升金です。

to daimaou さん:

どうやってうまくいかなかったのでしょう?
コントロールパネルから[アプリケーションの追加と削除]
で[起動ディスク]というタブがあるはずですが。
他に、DOS プロンプトから format A: /s として自分で
デバイスドライバを後からコピーする方法もあります。
(でも、こちらは面倒くさい)
澤口@一升金  [2000/10/11 Wed 11:23:07]  [211.4.198.14]

澤口@一升金です。

to kuu さん:

MS-DOS はセグメントデスクリプタその他いっさいのプロテクト
レジスタやニーモニックを管理しません。デバイスドライバや
ユーザーアプリケーションに任されています。
.386p という疑似命令は、アセンブル時にプロテクトモード用の
ニーモニックを見つけてもエラーとしない、というだけの意味合
いで、プログラマが自分で CPU をプロテクトモードに遷移させる
コードを記述しなければ、 CPU はプロテクトモードにはなりませ
ん。
C コンパイラでは、データ転送やレジスタ待避などに一部の32bit
命令を発生させて実行の効率化をはかるみたいです。
澤口@一升金  [2000/10/11 Wed 11:10:08]  [211.4.198.14]

澤口@一升金です。

to よしなかさん:

Linux とか NetBSD,FreeBSD の PowerPC 版が参考になるかも
知れません。
澤口@一升金  [2000/10/11 Wed 11:06:24]  [211.4.198.14]

澤口@一升金です。

to 土野明日香さん:

int 21H の 440D ですが、Ralf Brown's Interrupt List
に記載があります。

http://www.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html

それによると
functions 46h and 66h undocumented in DOS 4.x, documented for DOS 5+
the DUBLDISK.SYS v2.6 driver only supports minor codes 60h and 67h
で、
67h (DOS 4.0+) get access flag (see #01566)
だそうです。
daimaou  [2000/10/09 Mon 21:24:27]  [143.90.188.183]

どうも、はじめまして。ここの掲示板の内容を読んでいると自分が初心者のように思ってきたので、質問の内容が恥ずかしいかもしれませんがどうも、自分でやると、うまくいかないので、誰かに教えて欲しいのですが,PC98用のwindows98Second Edition用の起動ディスクの
作り方を教えて欲しいのですが・・・・・・・・・・・

 よろしくおねがいします。誰か助けてください。
土野明日香  [2000/10/09 Mon 21:00:46]  [210.131.97.34]

 どもどもっ★土野明日香です。

 わからなくなったときばかり出てきて済みませんm(__)m。

 INT 21h FNC.440Dhのサブファンクション67hってなんでしょうか?
 どうもMS-DOS7.0(MS-Windows95)から採用されたようなんですが。

 何をしているのかというと、例のPC-9821用127GBIDE-BIOSはほぼ完成したのですが、
どうもMS-Windows98SEのFDISK.EXEが32GBまでしか対応していないようなのです。
 そこでFDISK.EXEを解析し始めたら、上記のサブファンクションが出てきたというわ
けで。
 やっぱりこれって、PC-9821オリジナルファンクションなんでしょうかねぇ。
kuu  [2000/10/07 Sat 23:22:47]  [210.131.83.200]

最近x86系アセンブラを勉強し始めた者です。
MS-DOS関連についての質問です。
素朴な疑問で恐縮なのですが

16bit版VC++ver1.51で何かDOSアプリ(Hello Worldとか)
を/G3(386用)オプションをつけてコンパイルすると、これは
・リアルモード用コード
・プロテクトモード用コード
どちらになるのでしょうか?

アセンブラソースを出力させてみると
> .386p
>_TEXT SEGMENT WORD USE16 PUBLIC 'CODE'
・・・
となっており、何だかUSE16のプロテクトモード用コード
に見えるのですが。

かといってそう考えるとMS-DOSはプロテクトモードのコード
を走らせることが出来る(セグメントディスクプリタの
管理が出来る)と思えてしまうのですが、これで解釈が
あっているでしょうか?

MS-DOS時代を知らず何か根本的なところから勘違いしてる
のだと思いますが、間違っている点を指摘して頂ければ
幸いです。
よろしくお願いします。

Daisuke  [2000/10/07 Sat 10:46:36]  [210.255.3.224]

http://progar.com/index.shtml の Compiler から
Assembler に行くと MASM 6.0 フルセットがダウンロードできる
サイトに行けるみたいです。やばいサイトなのか?
MASM 6.0 ってフリーじゃなかったですよね?
Daisuke  [2000/10/06 Fri 12:42:33]  [210.255.3.216]

Daisukeです。お久しぶりです。
NASM のメイン開発のホームページがSourceForgeに
在るみたいです。開発に協力したい方は覗いてみては?

http://nasm.sourceforge.net/main.php3

けんぼぉ  [2000/10/06 Fri 10:26:28]  [210.163.178.219]

ども、けんぼぉです。

♪YKさん
はじめまして。
> アセンブラ自体の入門書で良質なものはないでしょうか?
2000/09/21 の私の書き込みの下半分に書いてあります。
(「少し立ち読みした・・」からの部分です。)

P.S. 管理人さんへ
そろそろ掲示板が重くなってきたので、
過去ログへ移してほしいのですが・・。
お忙しいと思いますが、よろしくお願いします。

よしなか  [2000/10/05 Thu 11:40:47]  [134.180.230.40]

はじめまして、アセンブラの情報を求めてここにたどり着きました。
PowerPC用の独自OSを開発しなければならなくなりました。
BOOT関係などPowerPC関係に強いHPなどありましたら教えてください。
よろしくお願いします。
YK  [2000/10/04 Wed 17:59:19]  [211.16.160.91]

初めまして、
これからアセンブラを勉強しようと思っているのですが、
アセンブラ自体の入門書で良質なものはないでしょうか?
よろしくおねがいします。




e-mail: mist@e-net.or.jp
Structured Anchor Tree Return to Menu Return to Parent Menu 
Powered by Unit Missing Link.