![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.09.2009
Сообщений: 23
|
![]()
в общем нужно ввести строку из нескольких слов, а вывести каждое слово на новой строке с фиксированным отступом от предыдущего слова, т.е. должна получиться лесенка из введенных слов. кто нить может объяснить как это вообще делать. с вводом и выводом я разобрался, а вот как сделать лесенку не могу понять =( подскажите хоть примерно ка энто делаеться =)
|
![]() |
![]() |
![]() |
#2 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
![]()
Вставлять нужное число пробелов в начале строки.
Ф-ция 09 int 10h позволяет записать символ нужное число раз. Можно вызывать ф-цию 01 int 21h нужное число раз, чтобы вставить пробелы. Если для вывода использовать функцию 13h int 10h, то там заддается координата, для вывода строки. Просто увеличивайте каждый раз их на 1. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 20.09.2009
Сообщений: 23
|
![]()
а как сделать чтобы он разбил строку на слова?
|
![]() |
![]() |
![]() |
#4 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
![]()
В цикле просматриваете строку и ищите символ пробела( ' ', 20h, 32d ) если символ встретился, значит слово закончилось. Если для вывода использовать ф-цию 09h int 21h, то вместо него нужно воткнуть '$'. и можно выводить. Потом продолжать смотреть строку со следующего символа.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 02.04.2008
Сообщений: 358
|
![]()
могу помочь недорого, интересует?
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666 mail: airyashov(а)inbox.ru |
![]() |
![]() |
![]() |
#6 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
![]()
airyashov, я конечно понимаю работа, кризис все такое... Но может не стоит делать из раздела "Assembler" раздел "Фриланс" добавляя в каждую тему своё предложение об услуге ?
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 20.09.2009
Сообщений: 23
|
![]()
спасибо Goodwin98, буду пытаться ....
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 20.09.2009
Сообщений: 23
|
![]()
data segment
NL db 0Ah, 0Dh, '$' Buf DB 255, 0, 256 DUP (0) ; data ends code segment ;отмечаем начало сегмента кодов assume cs:code, ds ![]() START: mov ax,data ;копируем адрес mov ds,ax ;сегмента данных mov dx,offset Buf ;считываем строку с клавиатуры mov ah,0Ah int 21h xor cx,cx mov al,[Buf+1] ;если считано 0 байт, то выход из mov cl,al ;задаем количество повторений (длина строки) test al,al ;программы jz Exit mov ah,09h mov dx,offset NL ; перейти на следующую строку int 21h mov si,offset Buf+2 Cycle: mov dl,[si] ;считать символ cmp dl,' ' ;сравнить с пробелом jne Print ;если не пробел - вывести mov ah,09h ;если пробел - перевод каретки mov dx,offset NL ;адрес строки с переводом каретки int 21h ;вызов DOS jmp Space ;пропустить код вывода - пробел не выводим Print: mov ah,02h ;выбор функции 2 int 21h ;вызов DOS Space: inc si ;перейти к следующему символу loop Cycle Exit: mov AX,4C00h ;выход int 21h ;из программы code ends END START это просто вывод в столбик...... а как лесенкой чтобы было? =(((( помогите.... |
![]() |
![]() |
![]() |
#9 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
![]()
добавьте после перевода строки
Код:
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 20.09.2009
Сообщений: 23
|
![]()
добавить после "перейти на следующую строку"?
ругается на count.... что и для чего это нужно? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод/вывод строк | anGeee | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 04.09.2009 21:58 |
вывод большего кол-ва строк | Alternavi | SQL, базы данных | 2 | 03.07.2009 15:43 |
вывод массива строк посимвольно | faraner | Общие вопросы C/C++ | 1 | 25.05.2009 22:51 |
Ввод/Вывод данных.Лабораторная работа. | kry | Общие вопросы C/C++ | 1 | 03.03.2009 11:03 |
вывод GridView строк | Shouldercannon | Общие вопросы Delphi | 0 | 25.02.2009 12:07 |