Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2014, 18:23   #1
AlexMessel
Пользователь
 
Регистрация: 23.04.2014
Сообщений: 13
По умолчанию Программирование на ассемблере

Помогите написать задачу на ассемблере(NASM):
Начав тренировки, спортсмен в первый день пробежал 16 км. Каждый день он увеличивал дневную норму на 15% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 10 дней?
AlexMessel вне форума Ответить с цитированием
Старый 15.06.2014, 21:39   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Самый простой способ вычислить все на калькуляторе, а в программу вставить только вывод результата вычислений на калькуляторе)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.06.2014, 23:32   #3
AlexMessel
Пользователь
 
Регистрация: 23.04.2014
Сообщений: 13
По умолчанию

Да проблема в том,что надо все через цикл написать
AlexMessel вне форума Ответить с цитированием
Старый 16.06.2014, 10:04   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

На nasm я не умею, только встроенный асм.
Исправил ошибки.
Путь дан в метрах

Код:
{Начав тренировки, спортсмен в первый день пробежал 16 км. Каждый день
он увеличивал дневную норму на 15% нормы предыдущего дня. Какой
суммарный путь пробежит спортсмен за 10 дней?}
var
  t,x,p,i:dword;
  xx,pp:real;
label
  sum,cycle;
begin
  pp:=16000;
  xx:=pp;
  for i:=1 to 9 do
    begin
      pp:=(xx*15)/100;
      xx:=xx+pp;
    end;
  writeln('Значение, найденное на паскале = ',round(xx):4);
  p:=16000;
  x:=0;
  asm
    mov EBX,p
    mov ECX,9
    sum:
    {умножили на 15, результат в ax}
    mov EAX,15
    mul EBX
    mov p,EBX
    mov EDX,0

    mov EBX,100
    div EBX
    mov EBX,p
    add EAX,EBX
    mov EBX,EAX
    loop sum
    mov x,EBX
  end;
  writeln('Значение, найденное на ассемблере = ',x:4);
  readln;
end.
Изображения
Тип файла: jpg 2014-06-16 11-21-25 Free Pascal IDE.jpg (44.9 Кб, 109 просмотров)

Последний раз редактировалось ZX Spectrum-128; 16.06.2014 в 11:24.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 19.06.2014, 18:05   #5
AlexMessel
Пользователь
 
Регистрация: 23.04.2014
Сообщений: 13
По умолчанию

Аее,спасибо огромное
Переделаю на NASM и ок
Очень помог
AlexMessel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование на ассемблере AlexMessel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 06.05.2014 19:30
программирование на ассемблере kate111 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 23.03.2013 00:03
Программирование на ассемблере TNV Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 06.06.2012 11:35
Программирование на Ассемблере Николай ПН Помощь студентам 3 23.03.2010 00:56