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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2015, 11:16   #1
COLL_APSE
 
Регистрация: 14.03.2015
Сообщений: 4
По умолчанию Задача на Ассемблер(FASM)

Написать консольную программу которая при вводе в нее с клавиатуры строки из нескольких слов, выводила бы каждое слово в отдельной строке т.е. в столбик.
Как это можно реализовать?
COLL_APSE вне форума Ответить с цитированием
Старый 14.03.2015, 17:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, FYI, ассемблеры бывают разные. определитесь с тем, какой именно нужен Вам.

во-вторых, постановка задачи не очень конкретна. Нужно задать понятия "слова". (ну чем в вашей строке слова разделены. Например, только пробелом. Или несколькими пробелами. Или знаками препинания.)

в-третьих, что Вы уже сами написали? Ввод строки написали? Вывод текста (хоть той же введённой строки) написали?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.03.2015, 12:03   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Можно написать мне.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 15.03.2015, 12:21   #4
COLL_APSE
 
Регистрация: 14.03.2015
Сообщений: 4
По умолчанию

Flat Assembler. Слова в строке разделены только пробелом. Вот все что написал:
___________________________________ ___________________________________ ____
Код:
format PE Console 4.0
entry Start

include 'win32a.inc'

section '.text' code readable executable
Start:
  invoke SetConsoleTitleA, conTitle
  test eax, eax
  jz Exit

  invoke GetStdHandle, [STD_OUTP_HNDL]
  mov [hStdOut], eax

  invoke GetStdHandle, [STD_INP_HNDL]
  mov [hStdIn], eax

startMenu: 
 invoke WriteConsoleA, [hStdOut], menuStr, menuStrLen, chrsWritten, 0
 
select_loop: 
 invoke ReadConsoleA, [hStdIn], readBuf, 1, chrsRead, 0;/ Ввод символа
    cmp [readBuf],' '          ;Сравнение введённого символа с ' '
    je c1               ;Переход, если равно
    cmp [readBuf],00h          ;Сравнение введённого символа с концом строки
    je Exit  ;Переход, если равно    
c1:
Exit:
  invoke  ExitProcess, 0

section '.data' data readable writeable

menuStr    db 10,13,'Input String',13,10,0
menuStrLen = $-menuStr
select  db 'Input>',0
selectLen = $ - select
 
  conTitle    db 'Console', 0
  hStdIn      dd 0
  hStdOut     dd 0
  chrsRead    dd 0
  chrsWritten dd 0

  STD_INP_HNDL  dd -10
  STD_OUTP_HNDL dd -11

section '.bss' readable writeable

  readBuf  db ?    

section '.idata' import data readable

  library kernel, 'KERNEL32.DLL'

  import kernel,\
    SetConsoleTitleA, 'SetConsoleTitleA',\
    GetStdHandle, 'GetStdHandle',\
    WriteConsoleA, 'WriteConsoleA',\
    ReadConsoleA, 'ReadConsoleA',\
    ExitProcess, 'ExitProcess'
___________________________________ ___________________________________ ___
Как я понял нужно организовать цикл который будет проверять символы с пробелом, и при совпадении переносить слова на другую строку. Но мы ассемблер только начали изучать, и я пока не понимаю как это сделать.

Последний раз редактировалось Stilet; 15.03.2015 в 12:33.
COLL_APSE вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача Ассемблер Tim148 Помощь студентам 2 22.04.2014 10:14
задача ассемблер, 93Николай93 Помощь студентам 0 06.12.2011 22:39
Чем отличаеться fasm от fasm editor&? TotKtoNado Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 07.11.2011 17:00
Задача ассемблер DubnauniM Помощь студентам 0 14.09.2011 13:59