次のアセンブリコードがあります。で 2 つの配列を宣言しました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