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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2010, 13:47   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
mov dl, [l] ; выдает ошибку в этой строке
еще бы... Регистр dl =8бит а переменная L объявлена как dw=16бит. обьяви ее как db или пиши вместо dl инструкцию dx

а в будущем ошибки компилятора приводи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2010, 14:10   #12
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
По умолчанию

Ага, исправила. Спасибо.
А теперь у меня Л все так же не показывается, но я ввожу два числа, вместо одно, в итоге :
rozz вне форума Ответить с цитированием
Старый 10.09.2010, 15:18   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но я ввожу два числа
Во-первых:
Цитата:
cinvoke scanf,fmat,m3 ; дописала строку
invoke ExitProcess,0
Зачем ты тут scanf прикрутила? Это же выход из программы.
Во-вторых а почему бы тебе не пройтись отладчиком? Например OllyDebugger хорош в своем деле - поймешь где натупила
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2010, 15:33   #14
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
По умолчанию

Тю, ты ж мне сказал его прикрутить =/ Или я не там где надо? )))
О хоспади, в том отладчике вообще темный лес

Цитата:
Прикрутить функции scanf для ввода данных
rozz вне форума Ответить с цитированием
Старый 10.09.2010, 15:58   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Или я не там где надо? )))
Угу. Обычно ввод то делается в начале программы
А ты его в конец впиндюрила
Цитата:
О хоспади, в том отладчике вообще темный лес
Да норм...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2010, 16:23   #16
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
По умолчанию

Сделала вначале. А все так же вводится по две цифры, а после уже показывает массив и результат.

Код:
format PE console
entry start
 
include 'C:\fasmw16918\INCLUDE\win32a.inc'
 
section '.data' data readable writeable
p db 'pause',0
ru db 'Russian',0
fmat db '%d',9,0
m1 db 'Find the sum of the last L of positive elements in an array of A-(a [i]). Baselines should be size 4 bytes.',13,10,0
m2 db 13,10,'Result =',0
m3 db 'Input l:',0

a dd -3, 5, 9, -67, 83, 54, -98, 45, 23, -6

l db 0


section '.code' code readable executable
start:
  cinvoke setlocale,0,ru
  cinvoke printf,m1
  cinvoke printf,m3
 ; cinvoke scanf,fmat,l
  cinvoke scanf,fmat,m3 
  ;****************************************
  mov esi,a
  mov ecx,9
aga:
  mov eax,[esi]
  push ecx
  cinvoke printf,fmat,eax
  pop ecx
  add esi,4
  loop aga
  ;****************************************
  cinvoke printf,m2
   mov ecx,9
   xor eax,eax
   mov dl, [l]
ugu:
   mov ebx, [esi]
   cmp ebx,0
   jl no
   add eax,[esi]
   dec dl
no:
  cmp ecx,0
  je done;
  sub esi,4
  cmp dl,0
  jne ugu
done:
  ;****************************************
  cinvoke printf,fmat,eax
  cinvoke system,p
  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'

Последний раз редактировалось rozz; 10.09.2010 в 16:48.
rozz вне форума Ответить с цитированием
Старый 13.09.2010, 12:09   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А все так же вводится по две цифры, а после уже показывает массив и результат.
Вот я и добрался до отладчика.
Все дело в том что scanf как то реагирует на символ 9. Я его для printf делал
короче :
Код:
fmat db '%d',0
И будет счастье.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.09.2010, 13:16   #18
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
По умолчанию

Ага, а у меня результат 0 пишет =/ При вводе любых Л. + теперь все числа выводит в одну строку, без пробелов.

Последний раз редактировалось rozz; 13.09.2010 в 13:46.
rozz вне форума Ответить с цитированием
Старый 13.09.2010, 14:40   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а у меня результат 0 пишет =/ При вводе любых Л.
Поправь
Код:
fmat db '%d',9,0
smat db '%d',0 
...
  cinvoke scanf, smat,m3
И получишь:
Чтоб для printf и scanf разные параметры были
Цитата:
Find the sum of the last L of positive elements in an array of A-(a [i]). Baseli
nes should be size 4 bytes.
Input l:5
-3 5 9 -67 83 54 -98 45 23
Result =0 Для продолжения нажмите любую клавишу . . .
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.09.2010, 15:29   #20
rozz
Пользователь
 
Аватар для rozz
 
Регистрация: 02.09.2010
Сообщений: 26
По умолчанию

У нас массив из 9? последнии "-6" не вывело
А тут результат 0 тебя не смутил?
Т.е. с пятой позиции должно суммировать положительные числа, в С - начало было бы 0, 1, 2, 3,4,..поэтому я делала -1, в асме не знаю, 5 есть 5?

Последний раз редактировалось rozz; 13.09.2010 в 15:38.
rozz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация циклов и работа с одномерными массивами DrDre Паскаль, Turbo Pascal, PascalABC.NET 4 26.08.2010 10:57
Организация циклов и работа с одномерными массивами dusya9992 Паскаль, Turbo Pascal, PascalABC.NET 1 25.08.2010 20:49
Организация циклов и работа с одномерными массивами ldinka135 Помощь студентам 4 23.08.2010 10:17
Организация циклов и работа с одномерными массивами в Borland C++ 3.1 Xeon332 Помощь студентам 8 25.12.2008 16:55
Организация циклов и работа с одномерными массивами Zenit10 Помощь студентам 9 17.01.2008 22:20