我有以下汇编代码。我已经在我的DS. 稍后在代码中,我进入BX要访问的数组元素的索引号。该PRINT_CHAR过程只是通过AL串行端口发送数据以显示在屏幕上。但由于某种原因,我似乎无法访问数组元素。它只是给了我一些虚假的价值。print_char过程肯定没问题。我已经尝试了两种我知道的方法来访问数组。任何帮助,将不胜感激。谢谢!   
    DATA_SEG    SEGMENT
ARRAY       DB  '1','2','3','1','2','3','4','5','6','4','5','6'
bottom2     DB  '7','8','9','7','8','9','*','0','#','*','0','#'
    DATA_SEG    ENDS
    topnumbers:
    cmp BX, 12
    jge bottom_numbers
    MOV AL,DS:ARRAY[BX] ; Stores character in AL (?)
    jmp NUMBERS
    bottom_numbers:
    sub BL, 12d
            LEA SI, bottom2
            ADD SI, BX
            MOV AL, [SI]
    NUMBERS:
    XOR AH, AH
    CALL FAR PTR PRINT_CHAR