Консультация № 62288
12.11.2006, 13:18
0.00 руб.
0 2 2
Здравствуйте уважаемые эксперты Помогите в написание программы под DOS!
Ну меня интерисует именно com а не exe!
И найти не по маске а по прямому адресу!
Это возможно?


Приложение:
A segmentorg 100hstart: ;Открыть файл "C:\pop\list.txt" И записать в него строку ;"Ассемблер это круто!" Сохранить и закрыть!A endsend start

Обсуждение

Неизвестный
12.11.2006, 15:07
общий
это ответ
Здравствуйте, Silinski I.L.!
Текст программы с комментариями в приложении.
На сайте Олега Калашникова есть <a href="http://www.kalashnikoff.ru/Assembler/prog/helpassm.exe">отличный справочник</a> по функциям MS-DOS.
С уважением IceW0|f.


Приложение:
A segmentassume cs:A, ds:A, es:A, ss:Aorg 100hstart:mov ax, 3d01hmov dx, offset FileNameint 21h ;открываемjc errormov hFile, ax ;хэндл в hFilemov bx, ax ;хэндл в bxmov ax,4202hxor cx,cxmov dx,cx ;dx=cx=0int 21h ;указатель чтения/записи в конец файлаjc errormov bx, hFilemov cx, nBytesmov dx, offset Buffermov ah, 40hint 21h ;пишем cx байт,избуфера ds:dx в конец файла с хэндлом bxjc errorcmp al, nBytesjnz errormov ah, 3ehmov bx, hFileint 21h ;закрываем файл, файловые буферы сброшены, информация записанаerror:int 20h ;выход в DOS;==============данные=================hFile dw ?FileName db ‘C:\pop\list.txt‘,0Buffer db ‘Ассмблер это круто!‘nBytes equ $-Buffer ;длина строкиA endsend start
Неизвестный
12.11.2006, 19:01
общий
это ответ
Здравствуйте, Silinski I.L.!
А зачем искать файл,если известно имя, при отсутствии файла ДОС выдаст ошибку.


Приложение:
A segmentorg 100hstart:mov ax,3D02hlea dx,file_nameint 21hjc error_openmov handle,axmov ah,40hmov bx,handlemov cx,20mov dx,offset test_stringint 21hjc error_writemov ah,3Ehmov bx,handleint 21hexit:int 20herror_open:mov ah,9lea dx,er_op_strint 21hjmp exiterror_write:mov ah,9lea dx,er_wr_strint 21hjmp exitfile_name db ‘C:\pop\list.txt‘,0test_string db ‘Ассемблер это круто!‘,0er_op_str db ‘Error Open File$‘er_wr_str db ‘Error Write File$‘handle dw ?A endsend start
Форма ответа