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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2010, 11:09   #1
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
Восклицание Використання арифметичних команд мікропроцесора (fasm)

Здравствуйте, уважаемые. Ежели кому не сложно, помогите, пожалуйста, решить данное задание. Все это посредством fasm.

Задание: Вычислить заданное целочисленное выражение для исходных данных, используя арифметические операции ADD, ADC, INC, SUB, SBB, DEC, IMUL, IDIV, CDW, CWD и, если нужно, логические операции SAL, SAR. Исходные данные должны выводиться с проверкой корректности вводимых символов. Формат результата зависит от специфики решаемого выражения. Входные данные и результат должны быть проверены на область допустимых значений.
Исходные данные для расчета: Выражение считается для чисел заданных в беззнаковом и знаковом вариантах, размер числа выбирается произвольно (2 байта или 4 байта).
Для без знаковых чисел: (12/c-d*4+73)/(a*a+1)
Для знаковых чисел: (4*c-d/2+23)/(a*a-1)


Ход решения:
При решении данного задания основное внимание уделяется командам умножения и деления, а также командам, которые подразумевают размещение операндов по умолчанию.
Вначале решается и отлаживается пример в отладчике, затем организовывается ввод-вывод и тестирование с различными данными.

Последний раз редактировалось rozz; 02.09.2010 в 11:12.
rozz вне форума Ответить с цитированием
Старый 02.09.2010, 12:17   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ваша цена за выполнение задания?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.09.2010, 16:31   #3
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
По умолчанию

Для сурового программиста задачка вроде плевая, сколько Вы хотите?
rozz вне форума Ответить с цитированием
Старый 02.09.2010, 16:39   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
задачка вроде плевая
Написать парсер выражений на ассемблере - это не плево, это круто.
Это потянет на хорошую курсовую.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.09.2010, 16:50   #5
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Написать парсер выражений на ассемблере - это не плево, это круто.
Это потянет на хорошую курсовую.
Это задание на курсовую? Улыбнули так улыбнули
Дело в том, что я сама асм учила года три назад, и сии задания у нас были начальными, мы даже им внимания не уделяли, а сейчас снова надо вспоминать асм - чего делать я не особо хочу, т.к. он малость меня угнетает =/ Да и заданий по асму у меня гора и маленькая тележка, т.е. хоть какая-то помощь мне была бы в радость.
+ ко всему этому еще оч много заданий связанных с программирование (хотя то, как у нас педагоги составляю задания - желает лучшего), да и курсовые, вообщем - скоро сессия =/

А в моих курсовых одна электроника и схемотехника.

Конечно, всегда можно пойти по пути наименьшего сопротивления - договариваться с педагогом, но сего я не сильно жажду.

Последний раз редактировалось rozz; 02.09.2010 в 16:58.
rozz вне форума Ответить с цитированием
Старый 02.09.2010, 17:02   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

Цитата:
Написать парсер выражений на ассемблере
ТС парсер не нужен. Нужно тупо закодировать одну формулу.
p51x вне форума Ответить с цитированием
Старый 02.09.2010, 17:08   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
тупо закодировать одну формулу.
А-а-а т.е.
Цитата:
Исходные данные должны выводиться с проверкой корректности вводимых символов.
Не следует понимать как "Ввод формулы строкой"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.09.2010, 20:13   #8
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Я бы сделал все за 60 грн. Если интересует, обращайтесь. Контакты ниже.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 03.09.2010, 09:52   #9
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
По умолчанию

Спасибо
Но..за 60грн я сделаю все задания, а не одно, вернее мне будет тогда уж лучше с препадом. Еще раз спасибо за помощь
rozz вне форума Ответить с цитированием
Старый 03.09.2010, 10:06   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
rozz
Ответь на мой вопрос: Тебе просто нужно написать программу для конкретной формулы?
Если да могу сделать бесплатно. Если формула не будет меняться программа будет не сложной.
И прошу, не лезь в чужие темы со своей проблемой.

Собственно вот уже сделал:
Код:
format PE console
entry start

include 'INCLUDE\win32a.inc'

section '.data' data readable writeable
ru db 'Russian',0
cmd db 'pause',0
m1 db 'Введите a c d: ',13,10,0
m3 db 'делить на ноль нельзя ',13,10,0
m2 db 'Результат Для без знаковых чисел: = %d',13,10,' Для знаковых чисел: = %d',13,10,0
fmat db '%d %d %d',0
a dw 0
c dw 0
d dw 0

section '.code' code readable executable
start:
  cinvoke setlocale,0,ru
  cinvoke printf,m1
  cinvoke scanf,fmat,a,c,d

  ;(12/c-d*4+73)/(a*a+1)
  xor eax,eax
  ;(a*a+1)
  mov ax,[a]
  mul [a]
  inc ax
  push eax
  ;d*4
  mov ax,4
  mul  [d]
  push eax
  ;12/c
  mov ax,12
  div [c]
  sub ax,[esp]
  add ax,73
  add esp,4
  div word [esp]
  add esp,4
  xchg eax,ebx

 ;(4*c-d/2+23)/(a*a-1)
  xor eax,eax
  mov ax,[a]
  imul [a]
  dec ax
  cmp ax,0
  jz Ошибка
  push eax
  ;d/2
  mov ax,2
  idiv	[d]
  push eax
  sub ax, [esp]
  add ax,23
    cmp word [esp],0
  jz Ошибка
  idiv word [esp]
  add esp,4

  cinvoke printf,m2,eax,ebx
  jmp ok
Ошибка:
  cinvoke printf,m3

ok:
  cinvoke system,cmd
  invoke ExitProcess,0
section '.idata' import data readable

library kernel,'kernel32.dll',\
	msvcrt,'msvcrt.dll'

import kernel,\
       ExitProcess,'ExitProcess'

import msvcrt,\
       setlocale,'setlocale',\
       printf,'printf',\
       scanf,'scanf',\
       system,'system'
I'm learning to live...

Последний раз редактировалось Stilet; 03.09.2010 в 10:42.
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Учебник по FASM Roof Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 33 09.12.2013 23:16
реализация команд с помощью набора других команд zhenyaa Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 08.11.2009 21:37
Вопросы по FASM Crivel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.06.2009 12:02
MySQL via FASM Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.05.2009 04:55
tasm>>fasm better Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 09.02.2009 19:34