0

次のアセンブリ コードに問題があります。

PROGX: MVI C, 10h
LOOP1: CALL SHOWX
DATAX: DB 80h, 01h, 40h, 02h
       DB 20h, 04h, 10h, 08h
       DB 08h, 10h, 04h, 20h
       DB 02h, 40h, 01h, 80h
       DB 02h, 40h, 04h, 20h
       DB 08h, 10h, 10h, 08h
       DB 20h, 04h, 40h, 02h
DCR C
JNZ LOOP1
ENDX: HLT

SHOWX: XTHL
MVI B, 0Eh
LOOP2: MOV A, M
OUT 3Eh
INX H
MOV A, M
OUT 3Fh
INX H
DCR B
JNZ LOOP2
CALL D500M ; Delay 500 msec.
XTHL
RET

Loop1 の 1 番目のループで ShowX を実行した後、DB ディレクティブを使用してメモリを予約する DATAX があります。

DBコマンドがメモリ内のバイトの割り当てを開始するメモリアドレスの開始を理解するのを手伝ってくれる人はいますか?

たとえば、以下のコードは、ORG コマンドによりアドレス C100H への割り当てを開始します。したがって、20h は C100h に格納され、10h は C100h + 1 に格納されます。

ORG C100h
DB 20h,10h

よろしくお願いいたします。

4

0 に答える 0