0

感謝の気持ちを先にお伝えしたいと思います。emu8086 のプログラムに関する機械語コードについてお聞きしたいのですが、以下の通りです。

ORG 100H

MOV AX,01H      
MOV CX,03H  

loop1:  NOP

        LOOP loop1  
        DEC AX
        JZ loop2    
        ADD AX,AX   

loop2:  DEC AX      
        HLT

上記のプログラムを参照すると、emu8086 に見られるように、JZ loop2 の同等のマシン コードは 74 02 であることがわかります。ここで、JZ は 74、loop2 は 02 です。

それぞれのニーモニックのバイト数を示した付録参照を調べたところ、ADD は 2 バイトに相当するようでした。コード「ADD AX,AX」と loop2 の変更のマシン コードを置き換えるために、いくつかの異なるニーモニックを試しました。たとえば、「ADD AX,AX」を「DEC [500H]」に変更すると、loop2 のマシンコードは 04 に変更され、参考文献では DEC [メモリ] が 4 バイトに相当します。

loop2 が 02 に相当する理由は何ですか? そして、02は何を示していますか?よくわかりません。

これについて私を助けてください。役立つ説明や情報があれば幸いです。努力と返信は大歓迎です。

4

0 に答える 0