LINUX.ORG.RU

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

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

Ащет многие UB сей произошли напрямую от асма

В отличии от Си, в ассемблере поведение строго документировано и детерминировано, иногда вплоть до количества циклов. Например в случае целочисленного переполнения переполненные биты отбрасываются и устанавливается флаг. Программа делает ровно то, что написано. А в Си компилятор может заниматься отсебятиной, например при *ptr = 1; полагать что ptr != NULL и что-нибудь пропустить или считать что a < a + 1 всегда истинно, хотя это не так.

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

Ащет многие UB сей произошли напрямую от асма

В отличии от Си, в ассемблере поведение строго документировано и детерминировано, иногда вплоть до количества циклов, например в случае целочисленного переполнения переполненные биты отбрасываются и устанавливается флаг. Программа делает ровно то, что написано. А в Си компилятор может заниматься отсебятиной, например при *ptr = 1; полагать что ptr != NULL и что-нибудь пропустить или считать что a < a + 1 всегда истинно, хотя это не так.

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

Ащет многие UB сей произошли напрямую от асма

В отличии от Си, в ассемблере поведение строго документировано, например в случае целочисленного переполнения переполненные биты отбрасываются и устанавливается флаг. Программа делает ровно то, что написано. А в Си компилятор может заниматься отсебятиной, например при *ptr = 1; полагать что ptr != NULL и что-нибудь пропустить или считать что a < a + 1 всегда истинно, хотя это не так.

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

Ащет многие UB сей произошли напрямую от асма

В отличии от Си, в ассемблере поведение строго документировано, например в случае целочисленного переполнения переполненные биты отбрасываются и устанавливается флаг. Программа делает ровно то, что написано. А в Си компилятор может заниматься отсебячиной, например при *ptr = 1; полагать что ptr != NULL и что-нибудь пропустить или считать что a < a + 1 всегда истинно, хотя это не так.