24:19 но ведь одновременно два флага CF и OF могут выставиться, если произойдет отрицательное переполнение, например при операции -2^31 - 1 в случае 32 битной системы
Когда происходит знаковое переполнение, то с точки зрения беззнакового ничего не происходит. Рассмотрим 3х битовые числа. Табличка есть на википедии: en.wikipedia.org/wiki/Two%27s_complement Наименьшее число это -4, что в бинарном виде 100 (1 и все остальные нули). Если посмотреть на число, как на беззнаковое, то это будет 4. Если сделать -1, то в бинарном виде получится 011, что с точки зрения знакового будет 3 и переполнение, а для беззнакового это тоже будет 3, но никакого переполнения не случилось.
@@misha_filitov При операции -4-1 получится 3, то есть из отрицательного получили положительное, поэтому выставляется флаг OF. Затем, если посмотреть на эту операцию в двоичном виде 100+111, то у нас лишний бит появляется при сложении старших битов, поэтому флаг CF должен тоже выставиться. Процессору же неважно с какими числами мы работаем, отрицательными или положительными
@@asfasfasfasf7028 Да, согласен, неправильно сказал, спасибо! В предыдущем ответе имел в виду (-4) - (1) и инструкцию sub, однако при сложении с add (-4) + (-1) действительно будут оба флага
24:19 но ведь одновременно два флага CF и OF могут выставиться, если произойдет отрицательное переполнение, например при операции -2^31 - 1 в случае 32 битной системы
Когда происходит знаковое переполнение, то с точки зрения беззнакового ничего не происходит. Рассмотрим 3х битовые числа. Табличка есть на википедии: en.wikipedia.org/wiki/Two%27s_complement
Наименьшее число это -4, что в бинарном виде 100 (1 и все остальные нули). Если посмотреть на число, как на беззнаковое, то это будет 4.
Если сделать -1, то в бинарном виде получится 011, что с точки зрения знакового будет 3 и переполнение, а для беззнакового это тоже будет 3, но никакого переполнения не случилось.
@@misha_filitov При операции -4-1 получится 3, то есть из отрицательного получили положительное, поэтому выставляется флаг OF. Затем, если посмотреть на эту операцию в двоичном виде 100+111, то у нас лишний бит появляется при сложении старших битов, поэтому флаг CF должен тоже выставиться. Процессору же неважно с какими числами мы работаем, отрицательными или положительными
@@asfasfasfasf7028 Да, согласен, неправильно сказал, спасибо!
В предыдущем ответе имел в виду (-4) - (1) и инструкцию sub, однако при сложении с add (-4) + (-1) действительно будут оба флага
@@misha_filitov Вам спасибо за видео)