懐かしのMS-DOSプログラミング [sc](★0)
-
- 1
- 2010/04/21(水) 12:42:23
-
mov dx,offset msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
msg db '懐かしのDOS時代のプログラミングについて語ろうぜ',0dh,0ah,'$'
-
- 135
- 2010/09/15(水) 23:14:54
-
>>134
ClearToSend……ってギャグはさておき。
コードは幾つよ。CTSなんて記憶にないわさ。
-
- 136
- 2010/09/15(水) 23:41:19
-
>>134
STC(SeT Carry flag) じゃなくて?
-
- 137
- 2010/09/16(木) 00:04:59
-
>>135
0fh。
symdebのアセンブラで
db 0fh
db 00h
とやって逆アセンブルすると
0F00 CTS 00
と出てくる。
-
- 138
- 2010/09/16(木) 00:41:43
-
>>137
そこには 386以降の命令が詰まっているような気が。
たしかにCTS ってなんのつもりだったんだろう?
-
- 139
- 2010/09/16(木) 07:22:51
-
>>137
symdebの時代なら8086を想定しているだろうから、0fは未定義だね。
8086って、未定義命令割り込みってあったっけ? あればAPIでも用意されているとか。
-
- 140
- 2010/09/16(木) 13:37:37
-
ない。
286以降でなかったかのう。
-
- 141
- 2010/09/16(木) 14:46:27
-
0fhって8086ではpop csだったような気がす。
86だと実際にpopが行われるから、予めpush csしておくようにと
CPU判定方法に書いてあった。
-
- 142
- 2010/09/16(木) 20:47:36
-
pop cs は、F0じゃないか?
286以降ではプリフィックスとして使われて
いわゆるF0バグを招いたやつ。
-
- 143
- 2010/09/16(木) 21:44:25
-
0F0Hは8086もlock prefix
-
- 144
- 2010/09/16(木) 22:56:48
-
push cs 0eh
push ds 1eh
push es 06h
push ss 16h
pop ds 1fh
pop es 07h
pop ss 17h
なので、pop csは0fhだったと思う。
-
- 145
- 2010/09/18(土) 17:58:34
-
8086:
AX:汎用加減乗除計算用
BX:準汎用加減乗除計算/アドレッシング補助
CX:準汎用加減乗除計算/カウンタ(条件分岐命令、ループ命令で使用)
DX:汎用加減乗除計算用
SI:メモリ転送元インデクサ
DI:メモリ転送先インデクサ
BP:スタックフレーム用
SP:スタックポインタ
それぞれけっこうギチギチに役割がふられており実は自由度は少ない。
但し多少の加算減算程度は16ビットレジスタには許可されてた
程度。よって完全にコンパイラ向け。経験知でオプティマイズできる
余地は余り無い。
しかし当時はアセンブリ職人と自称する人は会社に一人や二人は居て
腫れ物に触るように扱われてたっけW
-
- 146
- 2010/09/19(日) 13:30:22
-
>>145
>但し多少の加算減算程度は16ビットレジスタには許可されてた
>程度。
AL/AHとかの8ビットレジスタにも加減乗除演算が定義されてた(る)件
>よって完全にコンパイラ向け。
コンパイラ作成者泣かせなプロセッサと聞きました。(オプティマイズ
が難しい)
-
- 147
- 2010/09/19(日) 14:17:21
-
レジスタ割り当ては面倒だから、使い方が固定されているなら
むやみに凝るのをやめて機械的にやるのも手だと思う
-
- 148
- 2010/10/12(火) 23:11:58
-
保守
-
- 149
- 2010/10/13(水) 21:45:06
-
大阪地検のFD書き換え事件って、笑っちゃうよね。
件(くだん)の検事も上司も、パソコンのことをなんにも知らないんだからね。
ミスであんな書き換えが起こることなんて100%あり得ないのにね。
-
- 150
- 2010/10/13(水) 23:31:55
-
>>149
というか戻せばいいものを。
-
- 151
- 2010/10/14(木) 01:31:35
-
>>149
言い訳としてはアホだけど
嘘も吐き通せば無罪だからな
戦略的には勝利だろ
-
- 152
- 2010/10/16(土) 23:48:21
-
INT 21hの内容ってどこにあるんだ?
あとINT 21hでググると変なページが出るんだが
-
- 153
- 2010/10/17(日) 00:55:40
-
>>152
ググったら一番上に来たよ…?
ttp://home.impress.co.jp/catalog/impress/bk4615/c0302.htm
変なサイトの方が気になる。これ?
ttp://int21h.jp/
-
- 154
- 2010/10/17(日) 01:10:11
-
こっちのが詳しいかな。
http://www.ctyme.com/intr/int-21.htm
つっても、殆どは使われないものばかりか。
-
- 156
- 2010/10/17(日) 10:30:53
-
新しい概念: DOSのなかにある機械語
-
- 157
- 2010/10/17(日) 11:15:17
-
INT 21hってカーネルとかプログラムの中にあるんじゃないの
-
- 158
- 2010/10/17(日) 11:45:58
-
floppy disk の中にある
-
- 159
- 2010/10/17(日) 11:48:14
-
INT 21hがどのファイルのどこからどこまでがah=??のファンクションかを知りたい
-
- 160
- 2010/10/17(日) 11:50:05
-
>>156
155じゃないけど、割り込みベクターも知らないなら黙ってりゃいいのに。
馬鹿丸出しだな
-
- 161
- 2010/10/17(日) 12:11:39
-
debug使え
-
- 162
- 2010/10/17(日) 12:26:27
-
いい年こいて説明の下手な奴が怒ってるな
-
- 163
- 2010/10/17(日) 12:31:19
-
なんかトンデモ本作者と同じ論理だな。
相対性理論は俺に理解できないから間違ってる!、って奴だけどw
-
- 164
- 2010/10/17(日) 15:39:15
-
いや、機械語ってのはDOSの中にあるとかないとかってもんじゃないだろ。
それとも何か? お前等の中には日本語が入っているのか?
-
- 165
- 2010/10/17(日) 16:01:37
-
ベクタテーブル知ってるならそのアドレスからメモリダンプすれば
きっとDOSのなかにある機械語取れるよ
-
- 166
- 2010/10/17(日) 21:02:05
-
漏れの中の人はきっと日本語よりも細かいマイクロコードで動いてる希ガス
-
- 167
- 2010/10/18(月) 06:11:38
-
intはBIOS Interrupt Callsの略。実装は基本的にBIOSの中にある。
21HはDOSへ制御を移す、いわばスーパーバーザコールやAPIコールに相当する。
今はFreeBIOSなんてのもあるから、気になる人はソース見るとよろし。
そのコード量の多さに驚くと思う。
-
- 168
- 2010/10/18(月) 06:32:48
-
intに「BIOSの」なんて意味はねーよ。
intはただの割り込み。
ハードウェア割り込みの処理先として想定されていたものを
ソフト的に呼び出すことも可能にした、というだけ。
もちろん、Z80のRSTなんかもそうだが
それをソフト的に呼び出して特殊機能を実現する、というのは
かなり以前から行われていて
8086のintもその用途に使われることを前提に
割り込み番号の予約等を行っているのは確か。
-
- 169
- 2010/10/18(月) 07:04:02
-
でっていう
-
- 170
- 2010/10/18(月) 08:12:04
-
intに「BIOSの」なんて意味はねーよ。
-
- 171
- 2010/10/18(月) 18:48:32
-
FreeDOSのソースとか見ればわかるの?
-
- 172
- 2010/10/18(月) 18:56:27
-
MS-DOS ver6 のソースが流出した、
って本当なの?
-
- 173
- 2010/10/18(月) 22:55:24
-
暇なときはdebugでDOSの内部を探検したもんだ。
-
- 174
- 2010/10/19(火) 20:44:25
-
最新のMASMってDOSに対応してるのかな
-
- 175
- 2010/10/19(火) 20:55:39
-
VC++ expressについてるmlでコンパイルできるが、linkが対応してない。
dos用のlinkを用意するとこんな感じでコンパイルできる。
ml /c /omf hello.asm
link /tiny hello.obj, hello.com;
-
- 176
- 2010/10/19(火) 22:57:22
-
NASMは直接COMファイルを吐けるよね。
-
- 177
- 2010/10/20(水) 05:33:18
-
でもDOSで動かせないの
-
- 178
- 2010/10/20(水) 06:37:44
-
リンカってLNK562かLNK563ってどっちを使えばいいの
-
- 179
- 2010/10/20(水) 06:42:08
-
>>178は自己解決しましたすいません
-
- 180
- 2010/10/20(水) 07:25:02
-
stubを抜くんだ
-
- 182
- 2010/10/21(木) 12:33:37
-
com作るのにexe2binはいらなくなったのか・・・
-
- 183
- 2010/10/21(木) 23:07:21
-
え、普通にtinyモデルで作ればcomじゃない
-
- 184
- 2010/10/22(金) 00:38:49
-
B社のコンパイラしか使ったことないひとは
そういう認識でいればいいんじゃない
-
- 185
- 2010/10/22(金) 07:55:27
-
まあ、B社はある意味偉大だからな。
少なくともL社よりはw
このページを共有する