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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2012, 09:52   #1
Leon9313
 
Регистрация: 03.04.2012
Сообщений: 4
По умолчанию Считать файл TWO, удвоив все буквы "а"

Привет всем! Помогите пожалуйста с задачей. мне нужно её исправить, потому что она работает не правильно, должна удваивать буквы а, а она не удваивает, только копирует и всё, а что именно поправить, не знаю. Буду очень признателен.


Код:
include macro.lib
steck segment para 'steck'
dw 256 dup (?)
steck ends

data segment para 'data'
h00001 db'1 Zapis$'
h00002 db'2 Prosmotr 1.txt$'
h00003 db'3 Perezapisivanie$'
h00004 db'4 Prosmotr 2.txt$'
h00005 db'5 Exit$'
h00006 db'You choice: $'

choice dw ?
vert EQU 25

;Data1
mess11 db 'Zapis v file. '
mess21 db 'Vvedite stroku'
sum1 dw 0
filename db '1.txt'
handle dw ?
buflen equ $-str1
strlen dw ?
cp2 dw 20
stroka label byte
maxlen db 130
actlen db ?
str1 db 80 dup ('$')

;Data2
mess12 db 'Chtenie'
mess22 db 'Fila'
sum2 dw '0'
filename1 db '1.txt'
handle1 dw ?
str3 db 1024 dup ('$')
buflen1 equ $-str3
strlen1 dw ?

;Data3
sum3 dw '0'
mess13 db 'Perezapisianie'
mess23 db 'Iz odnogo fila v drugoy'
k dw 0
k1 dw 0
filename3 db '1.txt'
handle2 dw ?
filename4 db '2.txt'
handle3 dw ?
str4 db 1024 dup ('$')
buflen2 equ $-str4
strlen2 dw ?
str5 db 1024 dup ('$')
buflen3 equ $-str5
strlen3 dw ?
cp3 dw 80

;Data4
sum4 dw '0'
mess14 db 'Prosmotr'
mess24 db 'Fila'
filename5 db '2.txt'
handle4 dw ?
str6 db 1024 dup ('$')
buflen4 equ $-str1
strlen4 dw ?

;Data11
Data ends

Code segment para 'code'
begin proc far
assume cs:code, ds:data, ss:steck
mov ax, data
mov ds, ax
mov ss, ax

start:
cls
mov cx, vert
move_cursor 19, 1
message h00001
move_cursor 19, 2
message h00002
move_cursor 19, 3
message h00003
move_cursor 19, 4
message h00004
move_cursor 19, 5
message h00005
move_cursor 19, 6
message h00006

key_$2bin
mov choice, ax
cmp choice, 5
je g0006
jmp l1
g0006:
call g6
begin endp

l1:
cmp choice, 1
je g0001
jmp l2
g0001:
call bc1

l2:
cmp choice, 2
je g0002
jmp l3
g0002:
call bc2

l3:
cmp choice, 3
je g0003
jmp l4
g0003:
call bc3

l4:
cmp choice, 4
je g0004
g0004:
call bc4

wait_key proc
mov ah, 10h
int 16h
ret
wait_key endp

;Prog1
bc1 proc near
cls
message mess11
crlf
message mess21
crlf
mov ah, 0ah
lea dx, stroka
int 21h
mov cx, 0
mov ah, 3ch
mov al, 0
lea dx, filename
int 21h
mov handle, ax
mov ah, 40h
mov bx, handle
mov cx, cp2
lea dx, str1
int 21h
mov ah, 3eh
mov bx, handle
int 21h
call wait_key
bc1 endp
jmp start

;Prog2
bc2 proc near
cls
message mess12
crlf
message mess22
crlf
mov ax, data
mov ds, ax
mov ah, 3dh
mov al, 2
lea dx, filename1
int 21h
mov handle1, ax
mov ah, 3fh
mov bx, handle1
mov cx, buflen1
lea dx, str3
int 21h
mov strlen1, ax
mov ah, 3eh
mov bx, handle1
int 21h
mov cx, strlen1
mov bx, cx
mov al, ' '
mov str3[bx], al
crlf
message str3
call wait_key
bc2 endp
jmp start

;Prog3
bc3 proc near
cls
message mess13
crlf
message mess23
crlf
mov ax, data
mov ds, ax
mov ah, 3dh
mov al,2
lea dx, filename3
int 21h
mov handle2, ax
mov ah, 3fh
mov bx, handle2
mov cx, buflen2
lea dx, str4
int 21h
mov strlen2, ax
mov ah, 3eh
mov bx, handle2
int 21h
mov cx, strlen1
mov bx, cx
mov al, ' '
mov str4[bx], al
message str4			;vivod informaci iz fala
print_number
crlf
lea si, str5
lea di, str4
mov cx, 4

m1:
mov al,[di]
cmp al, 'a'
jne m2
mov [si],al
inc si
mov [si],al
m2:
inc si
inc di
loop m1
crlf
message str5
crlf
key_$2bin
mov cx, 0
mov ah, 3ch
mov al, 0
lea dx, filename4
int 21h
mov handle3, ax
mov ah, 40h
mov bx, handle3
mov cx, cp3
lea dx, str4
int 21h
mov ah, 3eh
mov bx, handle3
int 21h
call wait_key
jmp start
bc3 endp

;Prog4
bc4 proc near
cls
message mess14
crlf
message mess24
crlf
mov ax, data
mov ds, ax
mov ah, 3dh
mov al, 2
lea dx, filename5
int 21h
mov handle4, ax
mov ah, 3fh
mov bx, handle4
mov cx, buflen4
lea dx, str6
int 21h
mov strlen4, ax
mov ah, 3eh
mov bx, handle4
int 21h
mov cx, strlen4
mov bx, cx
mov al, ' '
mov str6[bx], al
crlf
message str6
crlf
call wait_key
jmp start
bc4 endp

;Exit
g6:
cls
mov ax, 4c00h
int 21h
code ends
end begin


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 18.06.2012 в 14:00.
Leon9313 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текстовый файл.Напечатать все его строки начинающиеся с символа "Т". Richik123 Паскаль, Turbo Pascal, PascalABC.NET 2 31.05.2012 19:37
Как в мемо заменить все буквы "а"? jeki0 Общие вопросы Delphi 7 16.03.2011 12:59
Напечатать текст, удалив из него все цифры и знаки "+" или "–". Язык С++. KaylasMKTY Помощь студентам 8 07.03.2010 21:35
все слова с нечетным количеством букв подходят для "ёлочной" рекурсии. Все буквы слова расположены в форм no_to Помощь студентам 0 04.01.2010 16:06
Переписать в файл Т2 все компоненты файла Т1 с заменой в них символа «0» на символ "1" АполинАрия Помощь студентам 2 31.05.2009 23:45