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

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

Запись от xqwetzi размещена 18.03.2024 в 01:03
Показов 1293 Комментарии 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 вне форума
 
Новые блоги и статьи
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru