LINUX.ORG.RU

История изменений

Исправление arax, (текущая версия) :

то не велика и разница.

А ты как хотел, что бы из двух строчек оно в ноль превратилось? :D
Просто видя двухстрочный вариант, закрадываются сомнения, что тут есть какое-то колдунство, про это изначальный вопрос от bugfixer скорее всего и был.

PS

Скорее всего это было использовано для демонстрации вот этого утверждения из статьи:

ecx is the 32 bit form of the register rcx, meaning we only set here the lower 32 bits of the 64 bit register. This handy table lists all of the forms for all of the registers. But be cautious of the pitfall case of only setting a value in part of a register, and then using the whole register later. The rest of the bits that have not been set will contain some past value, which is hard to troubleshoot. The solution is to use movzx to zero extend, meaning setting the rest of the bits to 0. A good way to visualize this is to use info registers within gdb, and that will display for each register the value for each of its forms, e.g. for rcx, it will display the value for rcx, ecx, cx, ch, cl.

Исправление arax, :

то не велика и разница.

А ты как хотел, что бы из двух строчек оно в ноль превратилось? :D
Просто видя двухстрочный вариант, закрадываются сомнения, что тут есть какое-то колдунство, про это изначальный вопрос от bugfixer скорее всего и был.

PS

Скорее всего это было использовано для визуализации вот этого утверждения из статьи: ecx is the 32 bit form of the register rcx, meaning we only set here the lower 32 bits of the 64 bit register. This handy table lists all of the forms for all of the registers. But be cautious of the pitfall case of only setting a value in part of a register, and then using the whole register later. The rest of the bits that have not been set will contain some past value, which is hard to troubleshoot. The solution is to use movzx to zero extend, meaning setting the rest of the bits to 0. A good way to visualize this is to use info registers within gdb, and that will display for each register the value for each of its forms, e.g. for rcx, it will display the value for rcx, ecx, cx, ch, cl.

Исправление arax, :

то не велика и разница.

А ты как хотел, что бы из двух строчек оно в ноль превратилось? :D
Просто видя двухстрочный вариант, закрадываются сомнения, что тут есть какое-то колдунство, про это изначальный вопрос от bugfixer скорее всего и был.

PS

Скорее всего это было использовано для визуализации вот этого утверждения из статьи:

ecx is the 32 bit form of the register rcx, meaning we only set here the lower 32 bits of the 64 bit register. This handy table lists all of the forms for all of the registers. But be cautious of the pitfall case of only setting a value in part of a register, and then using the whole register later. The rest of the bits that have not been set will contain some past value, which is hard to troubleshoot. The solution is to use movzx to zero extend, meaning setting the rest of the bits to 0. [b]A good way to visualize this is to use info registers within gdb, and that will display for each register the value for each of its forms, e.g. for rcx, it will display the value for rcx, ecx, cx, ch, cl.[/b]

Исправление arax, :

то не велика и разница.

А ты как хотел, что бы из двух строчек оно в ноль превратилось? :D
Просто видя двухстрочный вариант, закрадываются сомнения, что тут есть какое-то колдунство, про это изначальный вопрос от bugfixer скорее всего и был.

PS

Скорее всего это было использовано для визуализации вот этого утверждения из статьи:

ecx is the 32 bit form of the register rcx, meaning we only set here the lower 32 bits of the 64 bit register. This handy table lists all of the forms for all of the registers. But be cautious of the pitfall case of only setting a value in part of a register, and then using the whole register later. The rest of the bits that have not been set will contain some past value, which is hard to troubleshoot. The solution is to use movzx to zero extend, meaning setting the rest of the bits to 0. A good way to visualize this is to use info registers within gdb, and that will display for each register the value for each of its forms, e.g. for rcx, it will display the value for rcx, ecx, cx, ch, cl.

Исходная версия arax, :

то не велика и разница.

А ты как хотел, что бы из двух строчек оно в ноль превратилось? :D
Просто видя двухстрочный вариант, закрадываются сомнения, что тут есть какое-то колдунство, про это изначальный вопрос от bugfixer скорее всего и был.