Что делает этот ассемблерный код? (ТЕСТ, исключающее ИЛИ, JNZ)

1.

TEST EAX,EAX
JNZ SHORT program.00407190

2.

XOR EAX,EAX
JNZ SHORT program.00407190

Пожалуйста, поправьте меня, если я ошибаюсь. Спасибо! :)

Из моего понимания пока:

JNZ это прыжок, если не равен нулю, он будет прыгать или нет в зависимости от того,ZF установлен в 1 или нет. Если это 1, он не будет прыгать. Иначе оно будет прыгать.

Из моего понимания кода № 1,TEST EAX,EAX проверим, равен ли он нулю или нет. Если оно не равно нулю (ZF 0), он перейдет на адрес 00407190.

Для кода № 2
XOR EAX,EAX установит регистр EAX в 0. Устанавливает ли он какие-либо флаги? Если нет, то какJNZ инструкция определить прыгать или нет?

Наконец, почему люди хотят проверить, еслиEAX 0 или нет? Пожалуйста, помогите мне в более простом и подробном объяснении, я все еще начинающий.

Ответы на вопрос(1)

Ваш ответ на вопрос