x86プロセッサのアセンブリ言語---放課後の演習に対する4.5の回答

4.5JMPおよびLOOP命令

1リアルアドレスモードでは、LOOP命令でどのレジスタがカウンタとして使用されますか?(リアルアドレスモードでは、LOOP命令でどのレジスタがカウンタとして使用されますか?)

回答:CX

2 LOOP命令は、次のことを行います。ECXをデクリメントします。次に、ECXがゼロに等しくない場合、LOOPは宛先ラベルにジャンプします。[ターゲット]タブに移動します。)

回答:√

3JMPは条件付き転送命令です。

回答:×

4 JMP命令は、現在のプロシージャ内のラベルにのみジャンプできます。

回答:√

5 LOOP命令は、最初にECXがゼロに等しくないかどうかを確認します。次に、LOOPはECXをデクリメントし、宛先ラベルにジャンプします。

回答:×

6 LOOP命令のターゲットは、現在の場所から256バイト以内である必要があります。

回答:×

7ループを開始する前にECXがゼロに初期化された場合、LOOP命令は何回繰り返されますか?(ECXがループ内の他の命令によって変更されていないと仮定します。)

回答:4,294,967,296回

8この例のEAXの最終的な値は何ですか?
mov eax、0
mov ecx、10; アウターループカウンター
L1:
mov eax、3
mov ecx、5; 内部ループカウンター
L2:
eax、5
ループL2を追加します。内側のループ
ループL1を繰り返します。外側のループを繰り返す

回答:これはトリックです!最初のLOOP命令がECXをゼロにデクリメントするため、プログラムは停止しません。2番目のLOOP命令はECXをFFFFFFFFhにデクリメントし、外側のループを繰り返します(これはトリックです!プログラムは停止しません)。 、最初のループ命令はECXをゼロにデクリメントするためです。2番目のループ命令はECXをFFFFFFFFhにデクリメントし、外側のループを繰り返します。)

おすすめ

転載: blog.csdn.net/weixin_43574277/article/details/105625629