CODE SEGMENT
ASSUME DS:CODE,CS:CODE,ES:CODE,SS:CODE
ORG 100h
START:
mov bx,80h ;↓ファイル名をASCIIZにする
add bl,[bx]
inc bx
mov [bx],byte ptr 0 ;↑ここまで
mov cx,80h ;↓ファイル名の先頭を求める
mov di,81h
mov al,' '
repz scasb
dec di
mov dx,di ;↑ここまで
mov ax,3D00h
int 21h ;リードモードでファイルオープン
mov bx,ax
jnc FILE_READ ;エラーでなければジャンプ
mov ah,9 ;↓エラールーチン
mov dx,offset ERRMSG01
int 21h
mov ax,4c01h
int 21h ;↑ここまで
FILE_READ:
mov ah,3Fh
mov cx,1
mov dx,offset DATA
int 21h ;1バイトリード
cmp ax,1
jnz EOF
mov ah,2
mov dl,DATA
int 21h ;表示
jmp short FILE_READ ;繰り返す
EOF:
mov ah,3Eh
int 21h ;ファイルクローズ
mov ax,4c00h
int 21h ;終了
DATA db ?
ERRMSG01 db '指定されたファイルをオープンできません',0Dh,0Ah,24h
ENDS
END START
; 一部のコンパイラでは、
;CODE ENDS
; END START
;と記述しなければいけないようです
|