Решить функцию на ассемблере - PullRequest
1 голос
/ 25 ноября 2011

Я дурачок в Ассемблере.Мне нужно решить следующую функцию y = x ^ 2 (a + b + c);a, b, c - ввод из консольного результата x необходимо записать в файл.Я не прошу решить эту проблему для меня, но, может быть, кто-то поделится со мной полезными ссылками?

Ответы [ 2 ]

3 голосов
/ 25 ноября 2011

Попробуйте что-нибудь кодировать. Вы можете даже написать код на C и посмотреть на сгенерированный ассемблерный код (например, с помощью gcc -S -fverbose-asm при использовании GCC в Linux).

0 голосов
/ 14 января 2012

Проблема со сборкой заключается в том, что нет реальных функций ввода и вывода.На стандартном языке программирования вы определяете, что хотите отображать на экране.В вашем случае X, и вы определяете, что вы хотите, чтобы пользователь вводил, в вашем случае, a, b, c.Затем вы выполняете некоторую обработку и присваиваете результат выводимому значению x.

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

Вывод осуществляется с помощью Print, put, printf или writeline ect.Это выходные функции.Ввод осуществляется с помощью Input, gets или readline ect.Это входные функции.Обработка выполняется с различными заданиями и решениями.В вашем случае Y (=) X (^) 2 (*) (a (+) B (+) C)

Все просто на языке высокого уровня.Принимая любую часть этого, например.В сборке есть как минимум 3 способа сделать практически все.Никто из них не прост.Использование прерываний DOS, Использование прерываний BIOS и Использование прямых аппаратных прерываний.Так что, по крайней мере, 3 способа сделать вывод, и еще 3, чтобы сделать ввод, и затем есть бред с памятью для выполнения вычислений.

Не поймите неправильно, это стоит того, чтобы узнать, как это сделать,Я делаю это звучит намного сложнее, чем на самом деле.Вы по-прежнему говорите как минимум о 4-5 строках кода для каждой части вашей программы.Однако, как только вы это сделаете, вы можете использовать их для вывода и ввода любого количества вещей, как в стандартном языке программирования.С одним исключением вы получаете полный контроль над всем лотом.

К сожалению, нет простых способов научиться сборке.Но вы задаете правильные вопросы.

  1. Как получить вывод на экран
  2. Как получить ввод с клавиатуры
  3. Как мневыполнить некоторую обработку, такую ​​как x + yz

Я знаю, что это не отвечает на ваши вопросы о том, как это сделать.Тем не менее, я буду удивлен, если вы получите ответ, который вы ищете здесь, не разместив код сборки, который вы пытались написать первым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...