facebook twitter hatena line google mixi email
★お気に入り追加


■ このスレッドは過去ログ倉庫に格納されています

  • 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,'$'

ここまで見た
  • 124
  •  
  • 2010/08/25(水) 18:59:52
保守

Z80ではIX、IYを使うと笑われたから、
86でもSI、DIはストリング命令以外では使わなかったな。

ここまで見た
  • 125
  •  
  • 2010/08/25(水) 19:21:15
IXやIYを使うだけで嗤う香具師はおらん
IXやIYをアキュムレータのごとく使う香具師が嗤われる

ここまで見た
  • 126
  •  
  • 2010/08/25(水) 20:10:28
IX や IY はクロックをおもいくそ食うと思っていたが、HD64180 なんかでは状況はかわったのかなあ?

ここまで見た
  • 127
  • 訂正
  • 2010/08/25(水) 22:50:37
8086系のCでも、SIとDIはレジスタ変数として使われる程度だね。

ここまで見た
  • 128
  •  
  • 2010/08/26(木) 04:34:12
ぷげら

ここまで見た
  • 129
  •  
  • 2010/08/26(木) 10:50:31
>>127
誰が作ったんだ?その糞コンパイラはw

ここまで見た
  • 130
  •  
  • 2010/08/27(金) 13:27:04
ストリングス転送命令は途中からあまり使われなくなったような気がする。

ここまで見た
  • 131
  •  
  • 2010/08/27(金) 16:14:18
UNICODEが流行ってASCIIZじゃなくなったからだろ

ここまで見た
  • 132
  •  
  • 2010/08/27(金) 16:19:38
ブロック転送命令は8/16/32bit長のどれも使えるぞ

ここまで見た
  • 133
  •  
  • 2010/08/28(土) 08:31:25
Pentium以降、単純機能の命令が非常に高速化されたので
ストリング転送命令のような複合命令を使う理由がなくなった。
VC++のmemcpyの実装を見ると使用可能ならxmmレジスタを使ってる。

ここまで見た
  • 134
  •  
  • 2010/09/15(水) 22:51:28
CTSって何する命令?
symdebで逆アセンブルすると時々出てくるんだけど。

ここまで見た
  • 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
つっても、殆どは使われないものばかりか。

ここまで見た
  • 155
  •  
  • 2010/10/17(日) 09:48:22
>>153
そのページ
OllyDbgの画面に似てるしアクセスカウンターみたいなのもついてる

>>153,154
INT 21hの動作じゃなくて
DOSのなかにある機械語のこと

ここまで見た
  • 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;


砂時計アラームタイマー
フリックゾンビ
ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email