11/04/13 19:14:46.75
>>226
OSにメモリ割り当てを任せた上で割込駆動するようなのは行えない。
>>236
ahに4cでalに戻り値だね。
242:デフォルトの名無しさん
11/04/13 19:51:50.04
ERRORLEVEL
243:デフォルトの名無しさん
11/04/14 00:08:37.65
comファイルならバイナリエディタでも作れるね
244:デフォルトの名無しさん
11/04/14 00:28:21.31
>>225
make が使えなくなるのですが?
245:デフォルトの名無しさん
11/04/14 22:12:33.86
DOSプログラムを終了させる方法を4つまで覚えてるけど、
まだ他にあったかな。もう思い出せない。
int 21h ah=4ch al=(ExitCode)
int 21h ah=00h
jmp 0
ret
246:デフォルトの名無しさん
11/04/14 22:41:21.68
int 20h
csはpspを指していること。
247:デフォルトの名無しさん
11/04/15 00:08:40.80
psp:0にあるのはcdh, 20h。つまりint 20h。
ret命令やjmp 0はint 20hを実行して終わる。
248:デフォルトの名無しさん
11/04/16 21:45:40.90
psp:0へのfar jmpなら、exeファイルであっても
csはpspを指さなければならないという制約をクリアできる。
249: ◆0uxK91AxII
11/04/17 00:44:56.79
jmp farよりも、xor ax,ax; int 21Hの方が短い気がするする。
250:デフォルトの名無しさん
11/04/17 17:36:05.08
comファイルなら。
exeでもコードセグメントが64kB 1つしかないスモールかコンパクトなら可能
251:デフォルトの名無しさん
11/04/17 22:25:49.77
スモールやコンパクトモデルでもCSはコードセグメントを指してる。
初期値がPSPなのはDS。
252:デフォルトの名無しさん
11/04/18 18:09:08.49
とりあえずこういうことか。CP/M臭い・・
.MODEL SMALL,STDCALL,NEARSTACK
.DATA
PEXIT dd 00000000h
BDOS dd 00000050h
msg db 'hello world !', 0dh, 0ah, '$'
.STACK
.CODE
.STARTUP
mov ax, es
mov word ptr PEXIT[2], ax
mov word ptr BDOS[2], ax
mov dx, offset msg
mov ah, 09h
call BDOS
jmp PEXIT
END
253:デフォルトの名無しさん
11/04/18 19:55:13.72
BDOSエントリは0005hでなかったか?
254:デフォルトの名無しさん
11/04/18 20:01:59.72
CPM-80ではそうだな。
こっちのはDOS独自のCPM互換機能で0x0050で正解。
CP/M-86には無い。
int 21, retfがあるだけ。
255:デフォルトの名無しさん
11/04/18 22:49:59.27
>>251
あー、そうか。
Cの場合pspを指してるのはdsか。
256:デフォルトの名無しさん
11/04/18 23:05:17.65
お前ら何語を話してるんだ?w
257:デフォルトの名無しさん
11/04/19 05:58:51.81
爺共が久々に活性化w
258:デフォルトの名無しさん
11/04/19 10:11:02.79
システムコール呼び出しでcall 50hなんて使ったことないな。
259:デフォルトの名無しさん
11/04/19 23:59:57.68
親プロセス環境へのポインタ(非公開)がpsp:16h辺りにあったような気がする
260:デフォルトの名無しさん
11/04/21 00:01:51.48
親プロセスのPSPのセグメントかな。
PSP:16-17hだったと思う。
261:デフォルトの名無しさん
11/04/28 11:36:34.33
>>218
cd8枚組だっけか
買ったよ
次はDVDで出るかもなんて冊子に書かれてた