Инструкции машинного кода для программы

Как нам поставить программную инструкцию c = ab; в инструкции машинного кода? Мне были предоставлены коды операций, адрес памяти для a=80, b=81, c=82 и счетчик программ = 30 hex. инструкции имеют длину 16 бит с 4-битным оп-кодом, 4 бита для регистра и 16 бит для адреса памяти.

Мне просто нужно знать формальный способ, как это началось. это потому, что я действительно не понимаю, чему учит мой преподаватель. если я могу получить четкое направление, то я уверен, что смогу сделать это без помощи моего лектора.

1 ответ

Мнемоника будет выглядеть примерно так:

mov eax, [a] ; move 4 bytes starting at address a to the eax register
sub eax, [b] ; subtract 4 bytes starting at memory address b from the eax register
mov [c], eax ; move the contents of the eax register to the memory address of c

Вы заменяете в своих кодах операций для операций (mov, sub), адрес регистрации для (eax), адреса памяти для (a, b, c), а затем и результат фактические машинные инструкции. Я предполагаю, что здесь ваши числа являются 32-битными целыми числами, поэтому я использую регистр eax длиной 32 бита для процессора x86, но специфика того, какой регистр вы используете, является произвольной, если она достаточно велика для хранения вашего число. mov инструкция прочитает столько байтов, сколько может вместить регистр, начиная с предоставленного адреса памяти.

Вам явно не нужно ничего делать со счетчиком программ для этого примера, процессор увеличивает счетчик программ при выполнении каждой инструкции.

Другие вопросы по тегам