关于DOS中断的一个问题

在学习到王爽汇编语言的第13章最后实验题的时候,有一个这样的实验题。

题目:下面的程序,分别在屏幕的第2,4,6,8行显示4句英文诗,补全程序。
程序如下:

 assume cs:code

code segment

s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better,best.','$'
s:      dw offset s1,offset s2,offset s3,offset s4
row:    db 2,4,6,8

start:      mov ax,cs
            mov ds,ax
            mov bx,offset s 
            mov si,offset row 
            mov cx,4

    ok: mov bh,0
            mov dh,———
            mov di,0
            mov ah,2
            int 10h

            mov dx,————
            mov ah,9
            int 21h
            ————
            ————
            loop ok 


            mov ax,4c00h
            int 21h

code ends 

end start

我的填空是:

 assume cs:code

code segment

s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better,best.','$'
s:      dw offset s1,offset s2,offset s3,offset s4
row:    db 2,4,6,8

start:      mov ax,cs
            mov ds,ax
            mov bx,offset s 
            mov si,offset row 
            mov cx,4

    ok: mov bh,0
            mov dh,[si]
            mov di,0
            mov ah,2
            int 10h

            mov dx,[bx]
            mov ah,9
            int 21h
            add bx,2
            inc si
            loop ok 


            mov ax,4c00h
            int 21h

code ends 

end start

我不知道这个程序是否能够满足条件,但是在编译的时候,就遇到了问题,这个是深恶原因呢?
图片说明

db要放在DATAS SEGMENT里面吧。

db 不需要标号符号 :
把标号语句,改成变量定义语句试试
。。。。。。。。。。。。。。。。。
s1: 等语句改为如下形式看一看
s1 db 'Good,better,best,','$'
s2 db 'Never let it rest,','$'
s3 db 'Till good is better,','$'
s4 db 'And better,best.','$'
s dw offset s1,offset s2,offset s3,offset s4
row db 2,4,6,8