Важная информация
Показано с 1 по 4 из 4

Тема: Помогите пожалуйста.

  1. #1 Помогите пожалуйста. 
    Новичок
    Регистрация
    21.12.2015
    Сообщений
    4
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Примечания к заданиям:
    - Реализуйте вычисление заданного выражения как ассемблерную
    вставку в программе на языке высшего уровня ( С++ .).
    - Программа на языке высшего уровня должна запрашивать значения
    переменных и выводить результат на экран.
    - Все переменные являются целочисленными.
    ((A* X^2) div (B * X^2)) div (X * Y + 1)э
    Не знаю как вообще написать прогу с ассемблерной вставкой

    И если не трудно то с этим тоже помогите.
    Реализуйте вычисление заданного выражения как ассемблерную
    вставку в программе на языке высшего уровня (Паскаль, С++ и т.д.).
    - Программа на языке высшего уровня должна запрашивать значения
    переменных и выводить результат на экран.
    - Все переменные (X, Y) являются целочисленными.
    - A, B, C – массивы.
    - Если у массива указан один индекс, значит он одномерный, если два –
    двумерный
    (|sum(Ai) + sum (Bi)|) * X * Y
    Последний раз редактировалось jon547; 22.12.2015 в 18:08.
    Ответить с цитированием  
     

  2. #2  
    Профи Аватар для nik_1
    Регистрация
    03.08.2014
    Сообщений
    283
    Сказал(а) спасибо
    160
    Поблагодарили 145 раз(а) в 109 сообщениях
    Записей в блоге
    1
    Пирогов. Ассемблер на примерах. Там есть то что вы хотите.
    Ответить с цитированием  
     

  3. #3  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,931
    Сказал(а) спасибо
    1,842
    Поблагодарили 982 раз(а) в 840 сообщениях
    Записей в блоге
    1
    Код на FB. ASM вставка на си не изменится, перепишите обёртку и всё. Си не знаю, так написал бы.

    FreeBasic Code:
    1. '$Lang: "FBLite"
    2. SCREEN 12
    3. DIM AS INTEGER A, B, X, Y, X2    ' Резервируем 32 бит числа
    4. DIM REZULT AS INTEGER
    5. A = 88
    6. B = 2
    7. X2 = 5
    8.  
    9. X = 2
    10. Y = 5
    11.  
    12.   ASM
    13.     MOV EAX, [X]
    14.     MOV EBX, [Y]
    15.     IMUL EBX
    16.     INC EAX
    17.     PUSH EAX
    18.  
    19.     MOV EAX, [B]
    20.     MOV EBX, [X2]  
    21.     IMUL EBX         '  Умножим EAX на EBX, результат идёт в EAX
    22.     PUSH EAX         '  Сохраним результат (B * X2) в стек
    23.  
    24.     MOV EAX, [A]
    25.     IMUL EBX
    26.  
    27.     POP EBX          '  Восстановим (B * X2) в EBX  
    28.     IDIV EBX         '  Делим EAX на EBX, результат идёт в EAX
    29.  
    30.     XOR EDX, EDX
    31.     POP EBX          '  Восстановим (X * Y + 1) в EBX
    32.     IDIV EBX         '  Делим EAX на EBX, результат идёт в EAX
    33.  
    34.     MOV [REZULT], EAX
    35.   END ASM
    36.  
    37. PRINT REZULT                                ' Результат
    38. PRINT ((A * X2) \ (B * X2)) \ (X * Y + 1)   ' Проверка
    39.  
    40. SLEEP
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  4. Пользователь сказал cпасибо:

    nik_1 (22.12.2015)

  5. #4  
    Профи Аватар для nik_1
    Регистрация
    03.08.2014
    Сообщений
    283
    Сказал(а) спасибо
    160
    Поблагодарили 145 раз(а) в 109 сообщениях
    Записей в блоге
    1
    Код на Си.
    C Code:
    1.  
    2. #include <stdio.h>
    3.  
    4. int  a, b, x, y, x2, result;
    5.  
    6. void main()
    7. {
    8. a = 88;
    9. b = 2;
    10. x2 = 5;
    11.  
    12. x = 2;
    13. y = 5;
    14.  
    15.   _ASM {
    16.     MOV EAX, x
    17.     MOV EBX, y
    18.     IMUL EBX
    19.     INC EAX
    20.     PUSH EAX
    21.  
    22.     MOV EAX, b
    23.     MOV EBX, x2  
    24.     IMUL EBX        
    25.     PUSH EAX        
    26.  
    27.     MOV EAX, a
    28.     IMUL EBX
    29.  
    30.     POP EBX          
    31.     IDIV EBX        
    32.  
    33.     XOR EDX, EDX
    34.     POP EBX          
    35.     IDIV EBX        
    36.  
    37.     MOV result, EAX
    38.   }
    39.  
    40. [Ссылки могут видеть только зарегистрированные пользователи. ] (" ((A * X2) div (B * X2)) div (X * Y + 1)= %d", result);
    41.   
    42. }
    Ответить с цитированием  
     

  6. Пользователь сказал cпасибо:

    >Quiet Snow< (22.12.2015)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Помогите пожалуйста
    от Tip в разделе Turbo Pascal
    Ответов: 2
    Последнее сообщение: 16.11.2016, 10:54
  2. Помогите пожалуйста!!!
    от Гуля в разделе QBasic
    Ответов: 5
    Последнее сообщение: 02.12.2014, 19:17
  3. Помогите пожалуйста!
    от Катюша Мажорова в разделе Другие языки программирования
    Ответов: 0
    Последнее сообщение: 23.09.2014, 20:59
  4. помогите пожалуйста=(
    от 7Assassin7 в разделе Общие вопросы web-разработки
    Ответов: 0
    Последнее сообщение: 20.12.2013, 17:11
  5. помогите пожалуйста
    от finer в разделе Turbo Pascal
    Ответов: 3
    Последнее сообщение: 14.06.2012, 16:10
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •