Простите я не знал как назвать тему, но попробую правильно сформулировать вопрос. Мне понадобилось увеличить IP на единицу. (IP дан в сетевом расположении байтов, возврат функции inet_addr) они там задом наперед расположены, и мне ничего в голову не пришло, как написать такое – Код (Text): push my_ip_start call inet_addr@4 mov ip_start,eax cmp eax,0 je ERROR_IP_1 cmp eax,0FFFFFFFFh je ERROR_IP_2 [b]ror eax,16 ror ax,8 inc ax ror ax,8 ror eax,16[/b] mov [ip_start],eax но мне не нравиться шаманство с ROR….может можно это реализовать как то попроще и по красивее? Простите за этот вопрос, если он глуп…но я пока что учусь...
Ежели 0 и -1 недопустимы, то inc можно сделать и без ror, bswap и т.п. Код (Text): add eax, 1000000h adc eax,0
Мне нужен был инкремент в диапазоне - допустим 200.200.XXX.XXX (XXXXC8C8) ADD удобно было бы наверное, если увеличивать только 200.200.200.ХХХ ADC переносит не туда куда мне нужно, может я не совсем знаком с ADC, может можно организовать перенос в нужный байт регистра? так она переносит в AL, мне бы этот перенос в 00XXC8C8 хотя bswap, именно то что я искал, но и другие варианты хотелось бы попробовать. Спасибо.
Мда, с ADC я лопухнулся - ведь тут не цикл.сдвиг, а зеркальный свап :wall: Ну можно так Код (Text): add byte ptr [ip_start+3],1 adc byte ptr [ip_start+2],0