определена так:
                  
                  
                  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
Вообщем какой то кошмар
Какой компилятор то?
У меня твоя программа компилируется, но вылетает - а дебагере значение непонятное
Обсуждают сегодня