emu8086を使用しています。ヘキサ入力から変換した後、7 セグメント ディスプレイに表示されるものを表示するように依頼された質問があります。データを 16 進数で入力する必要があります。7 セグメント テーブルの 16 進数の入力と一致する場合は、10 進数で表示されます。3FH = 0, 06H = 1. 配列を使用してこのプログラムを実装しています。以下は、作業用ソース プログラムです。
ORG 100H
MOV AL,[1840H] ;input in this memory location
MOV CL,0AH ; initialize length counter
AGAIN: CMP AL,MSG+BX ; compare to check if the data matches
JE RESULT ; jump to RESULT if data matched
INC BX ; increase decimal output by 1 if data not matched
LOOP AGAIN
MOV [1841H],0FFH ; display FF if no data matched the array
HLT
MSG DB 3FH, 06H, 5BH, 4FH,66H, 6DH,7DH,07H,7FH,6FH ; my array with hexa inputs
RESULT: MOV [1841H],BL ; display data if matched
私はこのプログラムを動かしていました。MSG DB 3FH...
しかし、私は自分の配列を afterORG 100H
と beforeの位置に切り替える何かを試しましMOV AL,[1840H]
た。プログラムを実行するとエラーメッセージが表示されます
「不明なオペコードがスキップされました: 66、8086 命令ではありません - まだサポートされていません」.
理由がわかりません。
ORG 100H
配列をとの間に保持する場合、プログラムが機能するように何かを修正できMOV AL,[1840H]
ますか?