![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 17.04.2008
Сообщений: 16
|
![]()
Люди я с ассемблером не дружу воопще никак :-( да и получилось так, что препод болел в общем ппц мне по нему... Вот хочу Вас попросить решить задачу...Буду благодарен по гроб жизни:
-------------------------------------------------------------------------- Даны символы s1,s2,... Известно, что символ s1 отличен от восклицательного знака и что среди s2,s3... есть по крайней мере один восклицательный знак. Пусть s1,...,sn-символы последовательности, предшествующие первому восклицательному знаку (n заранее неизвестно). Выяснить, входит ли в последовательность s1,...sn буква ю -------------------------------------------------------------------------- от ассемблера я в ужасе ![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 26.11.2007
Сообщений: 235
|
![]()
И я почти такой же задачей занимаюсь)) Только у меня найти не букву "ю" предшествующую первому воскл. знаку, а найти последнюю гласную в слове, до есть среди строки до первого пробела) и на дельфи делаю.
По моему, как и меня тут посаветовали, заранее надо ввиде массива определить буквы и потом перебирать текст до встречи с воскл. знаком с проверкой вхождения буквы "ю" в этот текст. Ассемблер я незнаю( . Свою задачу стараюсь делать на дельфи. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 17.04.2008
Сообщений: 16
|
![]()
Ага спасибо))))я вот тоже незнаю ассемблер на паскале я б сделал ну на дельфях бы сделал наверное в приципе то...но блин ассемблер енто ппц(( у нас вся группа страдает но некоторые подмазались красивыми глазами она их как бы пропускает на екзамен а я в числе лысых остался( вроде как бы ей и логические команды сдал побитовые сдвиги сдал а ей вот именно ента задача нужна сижу и думаю "Вот засада" :-(
|
![]() |
![]() |
![]() |
#4 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
Если в плоской модели памяти, то как-то так (на MASM32)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 17.04.2008
Сообщений: 16
|
![]()
Спасибо, правда тама теперь разбираться и разбираться но все же енто гораздо лучше чем ничего) спасибо попробую сдать енто преподу)))
Эх ... а все равно дельфи и паскаль рулит-с))) |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 17.04.2008
Сообщений: 16
|
![]()
В общем спасибо за исходник но все же енто реально не мой уровень...Поентому прошу вас давайте доделаем чуточку вместе. Т.е. задача остается та же но немножко проще её надо сделать...Думаю примерно таким воть образом:
--------------------------------------------------------------------- ... C db ? cycle: (надо ввести С) ; я так и не смог разобраться с командами ввода с клавы если можете помогите... cmp C,'!' ; восклицательный знак обозначает конец строки je not_iu ; если не равен Ю cmp C,'ю' ; Ю ищем в множестве jne cycle вывод "Ю есть" ret not_iu: вывод "Ю нет" ret ----------------------------------------------------------------------- воть тякие воть пироги надо теперь воть довести енту тему до ума... енто уже к вам ввиде просьбы шлю... |
![]() |
![]() |
![]() |
#7 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
Я так понимаю, что задача ввода данных в этой программе не самая главная, поэтому предлагаю для получения строки символов использовать консоль WIN32 - функция WIN API ReadConsoleA, отсюда сразу вытекает, что модель памяти для нашей программы - flat.
The ReadConsole function reads character input from the console input buffer and removes it from the buffer. BOOL ReadConsole( HANDLE hConsoleInput, // handle of a console input buffer LPVOID lpBuffer, // address of buffer to receive data DWORD nNumberOfCharsToRead, // number of characters to read LPDWORD lpNumberOfCharsRead, // address of number of characters read LPVOID lpReserved // reserved ); Parameters hConsoleInput- Identifies the console input buffer. The handle must have GENERIC_READ access. lpBuffer- Points to a buffer that receives the data read from the console input buffer. nNumberOfCharsToRead- Specifies the number of characters to read. Because the function can read either 2-byte Unicode or 1-byte ANSI characters, the size of the buffer pointed to by the lpBuffer parameter should be at least NumberOfCharsToRead * sizeof(TCHAR). lpNumberOfCharsRead - Points to a 32-bit variable that receives the number of characters actually read. lpReserved - Reserved; must be NULL. Return Values - If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. Ну а дальше в принципе так как вы сами и написали.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
![]() |
![]() |
![]() |
#8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Proskurin, если тебе подойдет оконная программа то вот пример на МАСМ
Код:
Насчет ввода можно использовать обычный Edit
I'm learning to live...
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 17.04.2008
Сообщений: 16
|
![]()
гык)))) Спасибо спасибо... задачу я все таки решил вроде как))) Ваши варианты хотя бы из за любопытства обязательно просматрю! Ноо вопще вчера торчал весь день в универе и сделал все таки свой вариант единственная трабла тама енто у меня с прерыванием. Т.е. тама как только мы вводим ! программа выходит а при вводе буквы Ю она пишет что символ Ю найден и опять же производит выход из проги. В общем я исходник выложу если что то можь посмотрим и доделаем её до конца))) я просто уже все сдал, и препод вроде как сказал нормально рейтинг выставил. Но просто над будь её чуть чуть подкаректировать!...!...!...
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 17.04.2008
Сообщений: 16
|
![]()
И ещё один вопрос у меня по поводу варианта Ulexа, вот часть проги твоей написанной:
cicle: mov dl, byte ptr [eax] cmp dl, 0 ;# - дошёл до конца строки символы 'ю' и '!' не найдены je rezult1_out cmp dl, '!' ;# - нашёл '!' раньше чем 'ю' je rezult3_out cmp dl, 'о' ;# - нашёл 'ю' раньше чем '!' je rezult2_out inc eax jmp cicle почему здесь мы ищем букву Ю но в команде "cmp dl, о" пишем о, хотелось бы понять где имменно код определяет букву Ю, находит. Или тута dl как то играет роль здесь? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DOS... Условные команды и проверка | Xeon332 | Помощь студентам | 2 | 12.05.2008 21:20 |
Excel max 256 строк VS user надо 300 строк | Exo | Microsoft Office Excel | 3 | 10.01.2008 17:14 |
Команды Dos | Briz | Помощь студентам | 4 | 27.10.2007 16:59 |
Подскажите что обозначают команды | Luska | Помощь студентам | 4 | 22.05.2007 21:04 |
Подскажите команды! | Hump[FREE] | Общие вопросы Delphi | 2 | 27.02.2007 16:03 |