Форум программистов, компьютерный форум, киберфорум
xqwetzi
Войти
Регистрация
Восстановить пароль

TASM корректировка кода

Запись от xqwetzi размещена 18.03.2024 в 01:03
Показов 1310 Комментарии 1
Метки asm, tasm

Пожалуйста помогите превратить из кода, который переписывает строки с ! знаком на конце в код, который будет переписывать строки с ! знаком, который находится в любом месте строки



.386
dseg segment use16
text1 db 129, 130 dup(0)
text2 db 0Ah, 0Dh, 'Enter the route to the file(Up to 128 symbols): $'
text5 db 0Ah, 0Dh, 'Error! Please, try again later $'
buffer db 129, 130 dup(0)
text3 db 0Ah, 0Dh, 'The file is empty! $'
text4 db 0Ah, 0Dh, 'New file has been created!$'
text6 db 0Ah, 0Dh, 'File exists! $'
strok db 128 dup (0)
descript1 dw ?
descript2 dw ?
leng dw ?
dseg ends
cseg segment use16
assume ds:dseg, cs:cseg
m1: mov dx, dseg
;Ввод пути к файлу и открытие файла для чтения по заданному пути
mov ds, dx
mov ah, 9h
lea dx, text2
int 21h
mov ah, 0Ah
lea dx, buffer
int 21h
movzx si, buffer+1
mov buffer[si+2], 0
mov ah, 3dh
mov al, 2
lea dx, buffer+2
int 21h
jc mistake
mov bx, ax
mov descript1, ax
mov ah, 9h
lea dx, text6
int 21h
mov si, 0
mov ah, 42h
mov al, 2
mov cx, 0
mov dx, 0
int 21h
mov ds:leng, ax
mov ah, 42h
mov al, 0
mov cx, 0
mov dx, 0
int 21h
cmp ds:leng, 0
jz mistake1
;Создание файла
mov ah, 9h
lea dx, text2
int 21h
mov ah, 0Ah
lea dx, buffer
int 21h
movzx si, buffer+1
mov buffer[si+2], 0
mov ah, 3ch
mov cx, 0
lea dx, buffer+2
int 21h
jc mistake
mov bx, ax
mov descript2, ax
mov ah, 9h
lea dx, text4
int 21h
mov si, 0

;запись строки в файл


cycle:
mov ah, 3Fh
mov bx, ds:descript1
mov cx, 1
lea dx, ds:[strok+si]
int 21h
cmp ax, 0
jz short m2
cmp ds:[strok+si-3], '!'
jnz short m5
cmp ds:[strok+si-2], 0dh
jnz short m5


mov ah, 40h
mov bx, descript2
lea dx, ds:strok
inc si
mov cx, si
int 21h
mov si, 0
jmp short cycle
m5:
inc si
cmp ds:[strok+si-2], 0Ah
jnz short m6
mov si, 0
m6: jmp short cycle


;Отдельная обработка последней строки
m2: cmp ds:[strok+si], '!' ;! знак последний
jz short zapis_last
dec si
cmp ds:[strok+si], '!' ;! знак последний - строка заканчивается кодом OD/OA
jz short zapis_last
dec si
cmp ds:[strok+si], '!' ;! знак последний - строка заканчивается кодом OD и OA
jnz short close
zapis_last:
mov ah, 40h
mov bx, descript2
lea dx, ds:strok
inc si
mov cx, si
int 21h

close:
;закрытие файла
mov ah, 3Eh
mov bx, descript1
int 21h
mov ah, 3Eh
mov bx, descript2
int 21h
jmp short exit

mistake1: mov ah, 9h
lea dx, text3
int 21h
jmp short exit
mistake: mov ah, 9h
lea dx, text5
int 21h
exit: mov ah, 4ch
int 21h
cseg ends
end m1
Метки asm, tasm
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Аватар для DrType
    Создайте тему в разделе https://www.cyberforum.ru/assembler/ и задайте в ней этот вопрос.
    Запись от DrType размещена 18.03.2024 в 10:51 DrType вне форума
 
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru