Рубрики

ВОРОТА | Gate IT 2008 | Вопрос 36

Предположим, что EA = (X) + — это эффективный адрес, равный содержанию местоположения X, причем X увеличивается на одну длину слова после вычисления эффективного адреса; EA = — (X) — эффективный адрес, равный содержанию местоположения X, причем X уменьшается на одну длину слова до вычисления эффективного адреса; EA = (X) — эффективный адрес, равный содержанию местоположения X, причем X уменьшается на длину одного слова после вычисления эффективного адреса. Формат инструкции (код операции, источник, пункт назначения), что означает (пункт назначения → источник или пункт назначения). Используя X в качестве указателя стека, какая из следующих инструкций может извлечь два верхних элемента из стека, выполнить операцию сложения и перенести результат обратно в стек.
(A) ДОБАВИТЬ (X) -, (X)
(B) ДОБАВИТЬ (X), (X) —
(С) ДОБАВИТЬ — (Х), (Х) +
(D) ДОБАВИТЬ — (X), (X) +

Ответ: (А)
Объяснение:

Эффективный адрес — это адрес операнда.
В данном вопросе формат (код операции, источник, место назначения),
назначение ← источник оп назначения
Ex- ADD (X), (Y) ->
Источник = местоположение X
Пункт назначения = место Y
Операнд в Y = операнд в X + операнд в Y

Вот,
-X = уменьшить указатель X, а затем использовать новое местоположение, указанное указателем для операнда.
+ X = увеличить указатель X, а затем использовать новое местоположение, указанное указателем для операнда.
X- = указатель декремента X, но сначала используйте старое местоположение, на которое указывает X.
X + = увеличить указатель X, но сначала использовать старое местоположение, на которое указывает X.

PointerMemory locationData
XMemory location 10010
X-1Memory location 995

Затем наш вывод должен вытолкнуть первые два элемента, то есть 10 и 5, и поместить этот результат в ячейку памяти на 99.

1. ADD (X) -, (X) -> Взять операнд1 в качестве данных в ячейке памяти X и затем уменьшить X. Операнд1, принятый в качестве ячейки памяти 100 = 10,

Х = Х-1;
Х = 99;

Затем возьмите операнд 2 в качестве данных в ячейке памяти new X, Operand2 = 5;
Теперь отодвиньте их добавление в точке X, которая по-прежнему 99
Итак, наш результат — местоположение 99 заполнено 15, что является желаемым результатом.

2. ДОБАВИТЬ (X), (X) —
Возьмите операнд 1 в качестве данных в ячейке памяти X. Операнд1 принимается в качестве ячейки памяти 100 = 10, затем возьмите операнд 2 в качестве данных в ячейке памяти X, которая все еще равна 100, Операнд 2 = 10;
Теперь отодвиньте их добавление в точке X, которая составляет 100
Итак, наш результат — местоположение 100 заполнено 20, что не является желаемым результатом.

3. ДОБАВИТЬ — (X), (X) +
Уменьшить и затем принять операнд1 в качестве данных в ячейке памяти X. Так что X = 99; Операнд1 берется в качестве ячейки памяти данных 99 = 5,
Затем увеличьте, а затем примите операнд 2 в качестве данных в ячейке памяти X
Х = Х + 1;
Х = 100;

Операнд 2 = 10;
Теперь отодвиньте их добавление в точке X, которая составляет 100
Итак, наш результат — местоположение 100 заполнено 15, что не является желаемым результатом.

4. ДОБАВИТЬ — (X), (X)
Уменьшить и затем принять операнд1 в качестве данных в ячейке памяти X. Так что X = 99;
Операнд1 берется в качестве ячейки памяти данных 99 = 5,
Затем возьмите операнд 2 в качестве данных в ячейке памяти X, которая составляет 99
Операнд 2 = 5;
Теперь отодвиньте их добавление в точке X, которая является 99
Итак, наш результат — местоположение 99 заполнено 10, что не является желаемым результатом.

Это решение предоставлено Shashank Shanker khare .
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | Gate IT 2008 | Вопрос 36

0.00 (0%) 0 votes