определена так:
x1 DD 12AB56FEh
Исполняемый код:
lea EAX, x1
add EAX, 3
add [EAX],AL
dec EAX
mov AX,[EAX]
Какое конечное шестнадцатиричное значение будет иметь регистр EAX после выполнения указанной последовательности команд?
А в чём проблема выполнить, и посмотреть?
Мне нужно понять как это решать вручную, потому что компьютера под рукой не будет
Изучи, что делают инструкции lea, add, dec и mov.
lea eax, dword[x1] ; 0x00400204 add eax, 3 ; 0x00400207 [EAX] = 0x12AB56FE add dword[eax], al ; 0x12AB56FE + 0x7 = 0x12AB5705 dec eax ; 0x00400207-1 = 0x00400206 mov ax, word[eax] ; 0x5705
А как он туда переменную определил
было определено двойное слово x1 через DD
Я конечно не знаток, но по-моему ты объявил константу , которую назвал х1, и выделил ей double word (dd) то есть двойное слово, куда запихнул свои значения- это тоже исполняемый код
Затем запихнул в регистр eax, свою константу х1, затем прибавляет в регистр eax 3 Потом в АДРЕС еах, значение регистра al
Вообщем какой то кошмар
Какой компилятор то?
У меня твоя программа компилируется, но вылетает - а дебагере значение непонятное
Обсуждают сегодня