daily pastebin goal
82%
SHARE
TWEET

Untitled

a guest Dec 19th, 2018 65 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. use16                
  2. org 100h                  
  3.     jmp start            
  4.  
  5. file_name db 'hello.txt',0
  6. output_file_name db 'ans.txt',0
  7. s_error   db 'Error!',13,10,'$'
  8. endline   db 13,10,'$'
  9. buffer    rb 81
  10. res       db 81, 79 dup (0)        
  11. char      db 'o'
  12. handle    rw 1  
  13. size db 30        
  14.  
  15. start:
  16.     mov ah,3Dh          
  17.     xor al,al              
  18.     mov dx,file_name      
  19.     xor cx,cx              
  20.     int 21h            
  21.     jnc @F              
  22.     call error_msg        
  23.     jmp exit          
  24. @@: mov [handle],ax        
  25.  
  26.     mov bx,ax          
  27.     mov ah,3Fh          
  28.     mov dx,buffer      
  29.     mov cx,80              
  30.     int 21h                
  31.     jnc @F                
  32.     call error_msg          
  33.     jmp close_file          
  34.  
  35. @@:  
  36.     push res
  37.     push buffer
  38.     call proc1            
  39.  
  40.     mov ah,3Ch              ;Функция DOS 3Ch (создание файла)
  41.     mov dx,output_file_name        ;Имя файла
  42.     xor cx,cx               ;Нет атрибутов - обычный файл
  43.     int 21h                 ;Обращение к функции DOS
  44.     jnc @F                  ;Если нет ошибки, то продолжаем
  45.     call error_msg          ;Иначе вывод сообщения об ошибке
  46.     jmp exit                ;Выход из программы
  47. @@: mov [handle],ax         ;Сохранение дескриптора файла
  48.  
  49.     mov bx,ax               ;Дескриптор файла
  50.     mov ah,40h              ;Функция DOS 40h (запись в файл)
  51.     mov dx,res
  52.     add dx, 2           ;Адрес буфера с данными
  53.     movzx cx,[size]         ;Размер данных
  54.     int 21h                 ;Обращение к функции DOS
  55.     jnc close_file          ;Если нет ошибки, то закрыть файл
  56.     call error_msg          ;Вывод сообщения об ошибке
  57.  
  58. close_file:
  59.     mov ah,3Eh              ;Функция DOS 3Eh (закрытие файла)
  60.     mov bx,[handle]         ;Дескриптор
  61.     int 21h                 ;Обращение к функции DOS
  62.          ;Вывод сообщения об ошибке
  63.  
  64. exit:              
  65.     mov ax,4C00h            
  66.     int 21h                
  67.  
  68. error_msg:
  69.     mov ah,9
  70.     mov dx,s_error
  71.     int 21h                
  72.     ret
  73.  
  74. proc1:
  75.  
  76.     push bp
  77.     mov bp, sp
  78.     mov di, char
  79.     mov ah, [di+2]
  80.     mov di, [bp+4]
  81.     mov si, [bp+6]
  82.     mov cl, [size]
  83.     add si, 2
  84. a:
  85.     mov al, [di]
  86.     cmp al, 'o'
  87.     je b
  88.     mov [si], al
  89.     add si, 1
  90. b:
  91.     add di, 1
  92. loop a
  93.     pop bp
  94.     ret
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top