NASM(独習アセンブラのサンプルソース)について
独習アセンブラ初版5刷のサンプルソース(リスト6.7、102p)での疑問です
下の方にあるコメントアウトしているputc関数って何のためにあるんですか?
どこからも呼び出してないのでいらないと思うのですが…
アセンブラはNASMです
※本に書かれてるソースはコメントアウトしてません、コメントアウトしてもアセンブルできました
bits 16
org 100h
mov dx,sfile
mov al,0
mov ah,3dh
int 21h
jc endquit
mov [ifh],ax
mov dx,dfile
mov cx,0
mov ah,3ch
int 21h
jc endquit
mov [ofh],ax
readb:
mov bx,[ifh]
mov dx,buf
mov cx,1
mov ah,3fh
int 21h
test cx,ax
jz endquit
jc endquit
mov bx,[ofh]
mov dx,buf
mov cx,1
mov ah,40h
int 21h
jmp readb
endquit:
mov bx,[ifh]
mov ah,3eh
int 21h
mov bx,[ofh]
mov ah,3eh
int 21h
mov ax,4c00h
int 21h
;putc:
; push ax
; mov ah,2h
; int 21h
; pop ax
; ret
ifh dw 0
ofh dw 0
sfile db "srcfile.txt",0
dfile db "destfile.txt",0
buf resb 2
私が思うにリスト6.6(100p)のreadbラベルのところでこれを呼び出してるのでソースを流用して消し忘れてるだけなんでしょうか?
お礼
Tacosanさん、本当にいつもご回答頂き誠にありがとうございます。 先程、Tacosanさんから頂いたご教示のもと、 以下のコードを記述し、実験してみました。 ORG 2000H START: MOV AX,08888H XOR BX,BX MOV DX,08808H MAIN: AND DX,AX JP BXSET JMP RETURN BXSET: MOV BL,01H RETURN: IRET END と記述し→実行すると、見事!!!!BXには1という値は格納されませんでした。 やっと、頭がスッキリしました。 本当に感謝申し上げます。 ありがとうございました。
補足
Tacosanさん、いつもご回答頂き誠にありがとうございます。 IntelのIA-32デベロッパーズマニュアル、非常に助かりました。 >「結果の最下位バイトに値 1 のビットが偶数個含まれている」場合 という事は私の記述したコードに当てはめると、 DLに値1のビットが偶数個ある為、BXに値が入っていたんですね。 もう少し、検証コードを書いてから、実験してみたいと思います。 この度は、ご回答頂き、誠に感謝申し上げます。