Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Заданный символьный массив (под windows)  (Прочитано 22785 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dushlak
Читатель

ua
Offline Offline

« : 22-04-2021 12:22 » new

есть задание (Заданный символьный массив S (n), n≤700. Разработать программу, которая изымает из этого массива все повторные вхождения цифр и арифметических знаков.)
я написал код но надо под windows в программе MASM32 помогите пожалуйста
Код: (ASM)
org   100h
push  start
retn

mess0   db  13,10,10,'ARRAY...'
db  13,10,'------------',13,10,'$'
mess1   db  13,10,10,'FOUND...'
        db  13,10,'------------',13,10,'$'

array   db  700 dup(0)          
len     dw  0                  

start:
        in ax,40h
        mov   bx,700            
        xor   dx,dx            
        div   bx                
        cmp   dx,16            
        jb    start            
        mov   [len],dx          

        mov   di,array          
@@:     xor   cx,cx            
        loop  $                
        in    ax,40h            
        imul  ax,9E35h          
        and   al,7Fh            
        cmp   al,13            
        je    @b                
        cmp   al,10            
        je    @b                
        stosb                  
        dec   dx                
        jnz   @b                
        mov   ah,9              
        mov   dx,mess0          
        int   21h              
        mov   cx,[len]          
        mov   si,array          
@@:     lodsb                  
        int   29h              
        loop  @b                

        mov   ah,9              
        mov   dx,mess1          
        int   21h              

        mov   cx,[len]          
        mov   si,array          
        mov   di,si            
        xor   dx,dx            
@@:     lodsb                  
        mov   bl,al            
        cmp   al,'*'            
        jz    @save            
        cmp   al,'/'            
        jz    @save            
        cmp   al,'+'            
        jz    @save            
        cmp   al,'-'            
        jz    @save            
        sub   bl,30h            
        cmp   bl,9              
        ja    @next            
@save:  inc   dx                
        stosb                  
@next:  loop  @b                

        mov   cx,dx              
       mov   si,array          
@@:     lodsb                  
        int   29h              
        loop  @b                

        mov   ah,8              
        int   21h              
        int   20h
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines