这段简单实现switch的汇编代码如何修改?

DATA SEGMENT

    msg1 db 'Monday$'
    msg2 db 'Tuesday$'
    msg3 db 'Wednesday$'
    msg4 db 'Thyrsday$'
    msg5 db 'Friday$'
    msg6 db 'Saturday$'
    msg7 db 'Sunday$'
    msg  db 'input number(1-7):$'

    table dw disp1,disp2,disp3,disp4
          dw disp5,disp6,disp7

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:

    again:
        MOV DX, msg
        MOV AH, 9       ; 9号系统调用,从DX取数据并输出
        INT 21H

        MOV AH, 01H     ; 1号系统调用,将字符输入到AL中
        INT 21H
        CMP AL, 1
        JB  again
        CMP AL, 7
        JA  again       ; 不在范围内重新输入

        DEC AL
        MOV AX, AL
        MUL AX, 4       ; 相当于乘4, 左移也可
        ;JMP near ptr [table[AX] ; 跳转到相应的的label
        ;MUL AL, 4
        ;MOV AX, dword ptr [table[AL]]
        jmp dword ptr table[AX]

    disp1:
        MOV AX, OFFSET msg1
        jmp disp
    disp2:
        MOV AX, OFFSET msg2
        jmp disp
    disp3:
        MOV AX, OFFSET msg3
        jmp disp
    disp4:
        MOV AX, OFFSET msg4
        jmp disp
    disp5:
        MOV AX, OFFSET msg5
        jmp disp
    disp6:
        MOV AX, OFFSET msg6
        jmp disp
    disp7:
        MOV AX, OFFSET msg7
        jmp disp
    disp:
        MOV DX, AX
        MOV AH, 9
        INT 21H

CODE ENDS
END START

在jmp的地方出现错误, A2048 must be index or base register

是使用Dosbox作为环境的。

https://blog.csdn.net/p8x8x8/article/details/6531751