<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Форум программистов и сисадминов Киберфорум - Блоги - xqwetzi</title>
		<link>https://www.cyberforum.ru/blogs/1889315/</link>
		<description>КиберФорум - форум программистов, системных администраторов, администраторов баз данных, компьютерный форум, форум по электронике и бытовой технике, обсуждение софта. Бесплатная помощь в решении задач по программированию и наукам, решение проблем с компьютером, операционными системам</description>
		<language>ru</language>
		<lastBuildDate>Fri, 21 Aug 2026 22:39:00 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>Форум программистов и сисадминов Киберфорум - Блоги - xqwetzi</title>
			<link>https://www.cyberforum.ru/blogs/1889315/</link>
		</image>
		<item>
			<title>TASM корректировка кода</title>
			<link>https://www.cyberforum.ru/blogs/1889315/8467.html</link>
			<pubDate>Sun, 17 Mar 2024 22:03:13 GMT</pubDate>
			<description>Пожалуйста помогите превратить из кода, который переписывает строки с ! знаком на конце в код,...</description>
			<content:encoded><![CDATA[<div>Пожалуйста помогите превратить из кода, который переписывает строки с ! знаком на конце в код, который будет переписывать строки с ! знаком, который находится в любом месте строки<br />
<br />
<br />
<br />
.386<br />
dseg segment use16<br />
       text1 db 129, 130 dup(0)<br />
	  text2 db 0Ah, 0Dh, 'Enter the route to the file(Up to 128 symbols): $'<br />
       text5 db 0Ah, 0Dh, 'Error! Please, try again later $'<br />
       buffer db 129, 130 dup(0)<br />
	   text3 db 0Ah, 0Dh, 'The file is empty! $'<br />
	   text4 db 0Ah, 0Dh, 'New file has been created!$'<br />
	  text6 db 0Ah, 0Dh, 'File exists! $'<br />
	  strok db 128 dup (0)<br />
	  descript1 dw ?<br />
	  descript2 dw ?<br />
	  leng dw ?<br />
dseg ends<br />
cseg segment use16<br />
				assume ds:dseg, cs:cseg<br />
m1:                             mov dx, dseg<br />
;Ввод пути к файлу и открытие файла для чтения по заданному пути<br />
				mov ds, dx<br />
				mov ah, 9h<br />
				lea dx, text2<br />
				int 21h<br />
				mov ah, 0Ah<br />
				lea dx, buffer<br />
				int 21h<br />
				movzx si, buffer+1<br />
				mov buffer[si+2], 0<br />
				mov ah, 3dh<br />
				mov al, 2<br />
				lea dx, buffer+2<br />
				int 21h<br />
				jc  mistake<br />
				mov bx, ax<br />
				mov descript1, ax<br />
				mov ah, 9h<br />
				lea dx, text6<br />
				int 21h<br />
				mov si, 0<br />
				mov ah, 42h<br />
				mov al, 2<br />
				mov cx, 0<br />
				mov dx, 0<br />
				int 21h<br />
				mov ds:leng, ax<br />
				mov ah, 42h<br />
				mov al, 0<br />
				mov cx, 0<br />
				mov dx, 0<br />
				int 21h<br />
				cmp ds:leng, 0<br />
				jz mistake1<br />
;Создание файла<br />
				mov ah, 9h<br />
				lea dx, text2<br />
				int 21h<br />
				mov ah, 0Ah<br />
				lea dx, buffer<br />
				int 21h<br />
				movzx si, buffer+1<br />
				mov buffer[si+2], 0<br />
				mov ah, 3ch<br />
				mov cx, 0<br />
				lea dx, buffer+2<br />
				int 21h<br />
				jc  mistake<br />
				mov bx, ax<br />
				mov descript2, ax<br />
				mov ah, 9h<br />
				lea dx, text4<br />
				int 21h<br />
				mov si, 0<br />
<br />
;запись строки в файл<br />
<br />
				<br />
cycle:<br />
				mov ah, 3Fh<br />
				mov bx, ds:descript1<br />
				mov cx, 1<br />
				lea dx, ds:[strok+si]<br />
				int 21h<br />
				cmp ax, 0<br />
				jz short m2<br />
				cmp ds:[strok+si-3], '!'<br />
				jnz short m5<br />
				cmp ds:[strok+si-2], 0dh<br />
				jnz short m5<br />
				<br />
				<br />
				mov ah, 40h<br />
				mov bx, descript2<br />
				lea dx, ds:strok<br />
				inc si<br />
				mov cx, si<br />
				int 21h<br />
				mov si, 0<br />
				jmp short cycle<br />
m5:                             <br />
				inc si<br />
				cmp ds:[strok+si-2], 0Ah<br />
				jnz short m6<br />
				mov si, 0<br />
m6:                             jmp short cycle<br />
<br />
<br />
;Отдельная обработка последней строки<br />
m2:             cmp ds:[strok+si], '!' ;! знак последний<br />
				jz short zapis_last<br />
				dec si<br />
				cmp ds:[strok+si], '!' ;! знак последний - строка заканчивается кодом OD/OA<br />
				jz short zapis_last<br />
				dec si<br />
				cmp ds:[strok+si], '!' ;! знак последний - строка заканчивается кодом OD и OA<br />
				jnz short close<br />
zapis_last:                             <br />
				mov ah, 40h<br />
				mov bx, descript2<br />
				lea dx, ds:strok<br />
				inc si<br />
				mov cx, si<br />
				int 21h<br />
				<br />
close:<br />
;закрытие файла<br />
				mov ah, 3Eh<br />
				mov bx, descript1<br />
				int 21h<br />
				mov ah, 3Eh<br />
				mov bx, descript2<br />
				int 21h<br />
				jmp short exit<br />
				<br />
mistake1:               mov ah, 9h<br />
				lea dx, text3<br />
				int 21h <br />
				jmp short exit  <br />
mistake:        mov ah, 9h<br />
				lea dx, text5<br />
				int 21h                                 <br />
exit:           mov ah, 4ch<br />
				int 21h<br />
cseg ends<br />
end m1</div>

]]></content:encoded>
			<dc:creator>xqwetzi</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/1889315/8467.html</guid>
		</item>
	</channel>
</rss>
