![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
amega |
![]()
Сообщение
#1
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
Добрый день!
Нужно написать программку которая открывает файл и перезаписывает первую букву в словах. тоесть исходные данные this text In file And all char Big выходные This Text In File And All Char Big что у меня получилось, в буф хранится код символа и мне его нужно перезаписать, я файловой указатель перемещаю на 1 позицию назад, потом должна происходить запись, но как мне в дх загрузить смещение .model small
.stack 100h
.data
FileIn db 'in.txt',0
buf db ?
.code
start:
mov ax,@data
mov ds,ax
;открываем файл для чтения и записи
;DS:dx указатель на имя файла
;в ax деcкриптор файла
;если поднят флаг С, то ошибка открытия
mov ax,3d02h
lea dx,FileIn
int 21h
jc exit
mov bx,ax
xor cx,cx
xor dx,dx
;переходим к началу файла
mov ax,4200h
int 21h
;Читаем его первый символ и проверям его код
first:
mov ah,3fh
mov cx,1
lea dx,buf
int 21h
;Проверяем ЕоF
cmp ax,cx
jnz close
mov dl,buf
cmp dl,'a'
jb no
sub dl,32
mov buf,dl
;перекидуем на 1 позицию назад файловый указатель
mov ah,42h
mov al,1
mov cx,0
mov dx,-1
int 21h
;write
mov ah,40h
mov cx,1
lea dx,buf <--------------------------------------как исправить??????????????????????????????????
int 21h
no:
mov ah,2
int 21h
next:
mov ah,3fh
mov cx,1
lea dx,buf
int 21h
cmp ax,cx
jnz close
mov dl,buf
mov ah,2
int 21h
cmp dl,10
je first
jmp next
close:
mov ah,3eh
int 21h
exit:
mov ah,4ch
int 21h
end start
Сообщение отредактировано: amega - 12.12.2009 18:33 |
![]() ![]() |
amega |
![]()
Сообщение
#2
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
мм вопрос решил, ток ток возник другой оказалось что я неправильно передвигаю файловый указатель..
как передвинуть файловый указатель на 1 символ назад? |
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 2:59 |