Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание файла

9.5K
04 июня 2009 года
leahov
54 / / 09.12.2005
Столкнулся с ранее неизвестной ошибкой
(6) Illegal instruction: buflen=$-bufout or wrong parameters.
(21) Wrong parameters: MOV CX,buflen
(21) Second operand is undefined variable(?), no zero before hex number(?)

Вот код (нашел его в книге Рудакова), в чем беда подскажите?

Код:
.model  small
.stack  100h
.data
;В сегменте данных
bufout db 'Потап Барсук' ;Данные для записи в файл
buflen=$-bufout ;Ee длина (12 байт)
handle dw 0 ;Ячейка для дескриптора
fname db 'MYFILE.dat',0 ;Имя файла в формате ASCIIZ
.code
start:
;В сегменте команд
;Создадим файл
mov AH,3Ch ;Функция создания файла
mov CX, 0 ;Без атрибутов
mov DX, offset fname ;Адрес имени файла
int 21h
mov handle,AX ;Сохраним дескриптор файла
;Запишем в файл данные (в данном примере - текстовую строку)
mov AH,40h ;Функция записи в файл
mov BX,handle ;Дескриптор
mov CX,buflen ;Число записываемых байтов
mov DX,offset bufout;Адрес данных
int 21h
;Закроем файл (нет необходимости)
mov AH,3Eh ;Функция закрытия файла
mov BX,handle ;Дескриптор
int 21h
end start
14
04 июня 2009 года
Phodopus
3.3K / / 19.06.2008
может
buflen equ $-bufout
?
9.5K
04 июня 2009 года
leahov
54 / / 09.12.2005
пробывал, не получается так как потом вылазит ошибка (21) Wrong parameters: MOV CX,$-bufout
1.8K
04 июня 2009 года
Evgeni
188 / / 14.06.2006
Может стоит написать так
bufout db 'Потап Барсук',0
или
bufout db 'Потап Барсук',$

компиль же должны найти символ конца строки. А то получается что массив данных начался, а символа завершения нет.

Или если причина в неправильном присвоении, то возможно необходимо сделать так:
buflen db $-bufout
349
04 июня 2009 года
Phantom-84
656 / / 27.10.2005
Evgeni, ни одно из твоих предложений не выдерживает никакой критики. А втору топика следовало бы сообщить, какой компилятор он использует. Насчет самого исходника тоже есть некоторые вопросы, например, я так и не увидел кода для инициализации регистра DS и завершения программы.

Совет! С символами поэкспериментируй - поищи русские буквы среди английских в идентификаторах, попробуй поменять апострофы на кавычки в символьной строке и т.п.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог