1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Заданный символьный массив (под windows)

Тема в разделе "WASM.BEGINNERS", создана пользователем dushlak, 19 апр 2021.

  1. dushlak

    dushlak New Member

    Публикаций:
    0
    Регистрация:
    19 апр 2021
    Сообщения:
    3
    есть задание (Заданный символьный массив S (n), n≤700. Разработать программу, которая изымает из этого массива все повторные вхождения цифр и арифметических знаков.)
    я написал код но надо под windows в программе MASM32 помогите пожалуйста
    Код (ASM):
    1. org   100h
    2. push  start
    3. retn
    4.  
    5. mess0   db  13,10,10,'ARRAY...'
    6. db  13,10,'------------',13,10,'$'
    7. mess1   db  13,10,10,'FOUND...'
    8.         db  13,10,'------------',13,10,'$'
    9.  
    10. array   db  700 dup(0)        
    11. len     dw  0                  
    12.  
    13. start:
    14.         in ax,40h
    15.         mov   bx,700          
    16.         xor   dx,dx          
    17.         div   bx              
    18.         cmp   dx,16          
    19.         jb    start            
    20.         mov   [len],dx        
    21.  
    22.         mov   di,array        
    23. :     xor   cx,cx            
    24.         loop  $                
    25.         in    ax,40h          
    26.         imul  ax,9E35h        
    27.         and   al,7Fh          
    28.         cmp   al,13            
    29.         je    b                
    30.         cmp   al,10            
    31.         je    b              
    32.         stosb                  
    33.         dec   dx              
    34.         jnz   b              
    35.         mov   ah,9            
    36.         mov   dx,mess0        
    37.         int   21h              
    38.         mov   cx,[len]        
    39.         mov   si,array        
    40. :     lodsb                  
    41.         int   29h              
    42.         loop  b              
    43.  
    44.         mov   ah,9            
    45.         mov   dx,mess1        
    46.         int   21h              
    47.  
    48.         mov   cx,[len]        
    49.         mov   si,array        
    50.         mov   di,si            
    51.         xor   dx,dx            
    52. :     lodsb                  
    53.         mov   bl,al            
    54.         cmp   al,'*'          
    55.         jz    save            
    56.         cmp   al,'/'          
    57.         jz    save            
    58.         cmp   al,'+'          
    59.         jz    save            
    60.         cmp   al,'-'          
    61.         jz    save            
    62.         sub   bl,30h          
    63.         cmp   bl,9            
    64.         ja    next            
    65. save:  inc   dx              
    66.         stosb                  
    67. next:  loop  b              
    68.  
    69.         mov   cx,dx            
    70.        mov   si,array        
    71. :     lodsb                  
    72.         int   29h              
    73.         loop  b              
    74.  
    75.         mov   ah,8            
    76.         int   21h              
    77.         int   20h
     
    Последнее редактирование модератором: 19 апр 2021