Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

(ASM) Програма, делающая замены символов

32K
23 января 2008 года
Neonion
8 / / 23.01.2008
Вообщем надо чтобы прога выполняла такие действия :
- создавала директорию
- в этой директории создавала текстовый файл
- ввод ряда символов, которые будут записываться в этот файл
- обработка файла : заменяла в файле все символы "а" на "А"
- вывод результата обработки файла.
Короче вот что я написал, но у меня куча ошибок и не работает...
Код:
. .model small
 
.stack 100h
.data
str1    label byte
max1    db  255
min1    db  ?
str11   db  255 dup(?)

str db  1 dup(?)
str_A   db  'A'
exi dw  00h
msg1    db  'vedite deriktoriy: $'
msg2    db  0ah,0dh,'vedite imya fajla: $'
msg3    db  0ah,0dh,'vedite stroky: $'
msg4    db  0ah,0dh,'rezyltat:      $'

k   dw  0
descr   dw  0
.code
start:
    mov ax,@data
    mov ds,ax
    mov es,ax
    mov ax,0003h
    int 10h


    lea dx,msg1
call    write
;vvesti_deriktoriyu
    mov ah,0ah
    lea dx,str1
    int 21h
    lea si,str11
    xor ax,ax
    mov al,min1
    add si, ax
    mov ax,00h
    mov [si],ax
;ystanovit disk
    lea si,str11
    lodsb
    or ax,01100000B
    sub al,61H
    mov ah,0eh
    mov dl,al
    int 21h
;sozd derictoriu
    mov ah,3Bh
    lea dx,str11
    int 21h
    lea dx,msg2
   
call    write

;name file
    mov ah,0ah
    lea dx,str1
    int 21h

    lea si,str11
    xor ax,ax
    mov al,min1
    add si, ax
    mov ax,00h
    mov [si],ax
   
;sozdat fail
    mov ah,3CH
    mov cx,00
    lea dx,str11
    int 21h
    mov descr,ax
;vvesti stroky
    lea dx,msg3
call    write
    mov ah,0ah
    lea dx,str1
    int 21h

    lea si,str11
    xor ax,ax
    mov al,min1
    add si, ax
    mov ax,00h
    mov [si],ax
;zapisat v fail
    xor cx,cx
    mov ax,4000h
    mov bx,descr
    mov cl,min1
    lea dx,str11
    int 21h
   
;vuvod
    mov ah,09h
    lea dx,msg4
    int 21h
   
    mov ah,42h
    mov al,00
    mov bx,descr
    mov cx,00
    mov dx,00
    int 21h

;--------------------------
   
next:   xor cx,cx
    mov ax,3f00h
    mov bx,descr
    mov cl,1
    lea dx,str
    int 21h
    inc k
    cmp ax,00
    je exit
    cmp str,'a'
    jne next
   
    dec k
    mov ah,42h
    mov bx,descr
    mov al,00
    mov cx,00
    mov dx,k
    int 21h
    inc k
   
    mov ah,40h
    mov bx,descr
    mov cx,1
    lea dx,str_A
    int 21h
    jmp next
exit:

;prochitat fail
    mov ah,42h
    mov bx,descr
    mov al,00
    mov cx,00
    mov dx,00
    int 21h
   
    mov ah,3fh
    mov bx,descr
    mov cl,min1
    lea dx,str11
    int 21h
   
    lea si,str11
    xor ax,ax
    mov al,min1
    add si, ax
    mov ax,'$'
    mov [si],ax
   
    mov ah,09h
    lea dx,str11
    int 21h
;------zacrut fail---------
    mov ax,3e00h
    mov bx,descr
    int 21h
   
    mov ax,0800h
    int 21h
   
    mov ax,4c00h
    int 21h

write proc
    mov ah,09h
    int 21h
    ret
write   endp
end start
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог