Решение
Братюнь, я не настоящий сварщик, к тому же привык at&t асму, но попробую покамлать. Вот например ты пишешь:
mov [fisrt],eax
first, это у тебя word, 2 байта. А eax это dword, 4 байта. Так что этот мов забьёт не только first, но и second (проверь в отладчике). Сдаётся мне, что надо делать:
mov word ptr [first], eax
или просто
mov [first], ax
, смотря какой asm у тебя. И так везде по тексту. Ты пишешь в first 4 байта, а не 2, вот где собака и она зарыта повсюду у тебя. Например:
ты пишешь по адресу byte4 значение eax, а в нём 4 байта, а что у нас за byte4? А там импл рез 1 и 2:
mov [fisrt],eax
first, это у тебя word, 2 байта. А eax это dword, 4 байта. Так что этот мов забьёт не только first, но и second (проверь в отладчике). Сдаётся мне, что надо делать:
mov word ptr [first], eax
или просто
mov [first], ax
, смотря какой asm у тебя. И так везде по тексту. Ты пишешь в first 4 байта, а не 2, вот где собака и она зарыта повсюду у тебя. Например:
Код:
;Пока impl_res_2 есть !!!!
or eax,[fisrt]
mov [byte4],eax ; <<<< ДУХИ ГОВОРЯТ ЗДЕСЯ!!!
call implication
mov [impl_res_4],r9w
ты пишешь по адресу byte4 значение eax, а в нём 4 байта, а что у нас за byte4? А там импл рез 1 и 2:
Код:
...
byte4 dw 0...