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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2017, 17:32   #1
feeks
Новичок
Джуниор
 
Регистрация: 17.05.2017
Сообщений: 1
По умолчанию Обработка строки. - Assembler

Доброго времени суток, у меня проблема. Задали курсовую, а я в этой теме не особо понимаю, можете помочь как так сделать?



Тема курсового проекта и исходные данные Разработка программы на языке ассемблера для CPU i8086, выполняющей преобразование строки символов и выводящей полученный результат на экран.

Задание:

Удалить лишние пробелы в строке из 30 буквенных символов, переставить в обратном порядке символы каждого слова, причем строчные буквы заменить на прописные, а прописные на строчные.
Ввести с клавиатуры строку из 30 буквенных символов, разделенных на слова одним или несколькими пробелами. Преобразованную строку вывести на экран. Обмен информацией с пользователем организовать в виде специальных сообщений, каждое из которых следует размещать в отдельной строке экрана



кто поможет буду благодарна

пока что как то так


Код:
.STACK 100h          ;nachalo segmenta steca


 include 'emu8086.inc'
data segment
N  db 0Ah, 0Dh, '$'
str1  db 30, 0, 30 DUP (0)     ;



    
.CODE                ;nachalo segmenta coda    

main PROC


mov     ax,@data         ;copiruem adres segmenta dannih
mov     ds,ax        
mov     dx,offset str1  ;schitvaem strocu s clavaturi
mov     ah,0Ah
int     21h
xor     cx,cx
mov     al,[str1+1]       ;esli schitano 0 bait to vihod iz
mov     cl,al        ;zaaem colichestvo povtarenii (dlina stroki)
test    al,al        ;programmi
jz       Exit
mov     ah,09h
mov     dx,offset N    ; pereiti na sleduyschuy stroku
int     21h
mov     si,offset str1+2
mov dh,0Dh           ;podgotovka - vstavlaem v registr simvolov
                                
Cycle:
     mov     dl,[si]         ;schitvanie simvola
     cmp     dl,' '      ;sravnenie s probelom
      jne     Print      ;esli ne probel to vivisti
      cmp dx,'  '        ;a esli probel to prididuchii bil probelom ili net
      je    NextChar         ;esli 2 probela to ne pechataem
     Print:
     mov     ah,02h      ;vibor funkcii 2
     int     21h         ;vizov dos
     NextChar:
     mov dh,dl           ;sohraniti tecuchi simvol dla testa na sled vitke
     
     
 ;__________________________________________________________
     
;_____________________________________     
      
  
   
     
     inc     si        
loop    Cycle 






Exit: 



  mov     AX,4C00h       ;vihod
  int     21h        ;iz programi
main    ENDP
END main

Последний раз редактировалось feeks; 18.05.2017 в 07:44.
feeks вне форума Ответить с цитированием
Старый 17.05.2017, 23:32   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

что из этого можешь сама сделать?
Например, ввести\вывести строку из 30 символов сможешь?

//off. уже CPU-то таких не найдёшь, а шараги всё их изучают
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler(строки) Acito Помощь студентам 0 20.03.2015 16:12
Обработка символьной информации (Assembler, TASM) Nokard Помощь студентам 1 10.01.2014 22:24
Assembler.Обработка массивов(Исправьте кому не сложно) Kot070 Помощь студентам 3 18.05.2013 15:59
обработка арифметических выражений (assembler) designer Помощь студентам 8 02.12.2008 21:16