オペランドでのオフセット指定

高級言語プログラマのためのアセンブラ入門』 62ページの説明の確認+α。

CDSEG   SEGMENT
        ASSUME  cs:CDSEG,ds:DTSEG,ss:STSEG
START:
        mov     ax,DTSEG
        mov     ds,ax

        ;mov     ah,09H
        ;mov     dx,OFFSET MSG
        mov     ah,02H
        mov     dl,MSG
        int     21H

        mov     ah,4CH
        int     21H

CDSEG   ENDS

DTSEG   SEGMENT
MSG     DB      "Hello World$"
DTSEG   ENDS

STSEG   SEGMENT STACK
        DB      100H DUP(?)
STSEG   ENDS

        END     START

で、

H
  • 「mov dl,MSG」を「mov dl,ds:MSG」にしても OK
  • 「mov dl,MSG」を「mov dl,cs:MSG」するとコンパイルはできるが、実行は変に