24.09.2018, 07:39 [+3 UTC]
в нашей команде: 2 973 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.50 (13.09.2018)

Общие новости:
13.04.2018, 10:33

Форум:
21.09.2018, 12:18

Последний вопрос:
23.09.2018, 21:57

Последний ответ:
24.09.2018, 06:27

Последняя рассылка:
23.09.2018, 18:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
20.08.2011, 14:15 »
Сергей
Большое спасибо!! [вопрос № 183883, ответ № 268081]
21.11.2009, 19:09 »
gorulll
Спасибо за ответ! Так и думал, что с картой придется попрощаться. По моему за 4-5 т.р. есть более производительные карточки. [вопрос № 174406, ответ № 256766]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 353
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 94
Kdsfofwe21
Статус: 1-й класс
Рейтинг: 46

Перейти к консультации №:
 

Консультация онлайн # 192544
Раздел: • Assembler
Автор вопроса: cupoma58 (Посетитель)
Отправлена: 08.02.2018, 12:50
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе:
работаю на WinXP, опять проблема с примером из Калашникова:

;открытие, чтение и вывод файла на экран
CSEG segment  ;в com-файлах существует только один сегмент
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG 
org 100h
Start:
  ;mov ax,0003h   
  ;int 10h
          
  mov dx,offset File_name 
  call Open_file 
  jc Error_file
  mov bx,ax                          ;сохраняем id файла
  
  mov ah,3Fh 
  mov cx,offset Finish-100h ;сколько байтов будем читать
  mov dx,offset Start   ;читаем файл в память...
  int 21h   ;...с метки Start 
  
  call Close_file                ;вызываем процедуру закрытия и...
  mov ah,9 
  mov dx,offset Mess_ok  ;...сообщаем об этом
  int 21h 
  ret 
  
  Error_file:                       ;сигнал, если файл не нашли
    mov ah,2 
    mov dl,7 
    int 21h 
    ret 
    
  Open_file proc 
    cmp Handle,0FFFFh             ;открыт-ли файл...
    jne Quit_open                    ;...если нет-открываем
    mov ax,3D00h 
    int 21h 
    mov Handle,ax 
    ret 
    Quit_open: 
      stc                                    ;установка флага переноса в 1 (3Dh)
      ret                                  ;подтверждение факта открытия-для jc
      Handle dw 0FFFFh 
  Open_file endp
  
  Close_file proc 
    mov ah,3Eh 
    mov bx,Handle 
    int 21h 
    ret 
  Close_file endp 
  
  File_name db '07.asm', 0 
  Mess_ok db 'Все нормально!', 0Ah, 0Dh, '$' 
  Finish equ $                               ;адрес конца программы
CSEG ends
end Start

При попытке создать com-файл появляется форточка с сообщением : Процессор NTVDM обнаружил недопустимую инструкцию. CS:00cf IP:0911 OP:de df 90 91 92. А при подключении (mov ax,0003h int 10h) появляется чистая панель с мигающим курсором.


Состояние: Консультация закрыта

Ответ # 276134 от Лысков Игорь Витальевич (Старший модератор)

Здравствуйте, cupoma58!
Если бы Вы внимательно просмотрели листинг из 9 главы (кстати, почему у Вас имя файла 07 smile ), то увидели бы, то имя загружаемого файла должно быть не ASM, а COM.
Т.к. программа грузит свой же код на свое же место. Вы же пытаетесь грузить исходник, текстовый файл...
Так что последствия интерпретации текста, как кода, абсолютно правильные... smile


Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 08.02.2018, 13:24

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 192544

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 1

= общий = | 08.02.2018, 13:29 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
cupoma58:

Еще момент: Вы захотели вывести сообщение на русском языке (вместо английского в оригинале).
Вы увидите абракадабру, т.к. в коде кириллица в коде ANSI (CP-1251), а при выводе в консоли используется досовская кодировка (CP-866). Или перекодируйте само сообщение в кодировку 866, или выводите сообщения английскими буковками smile smile

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

• Отредактировал: Лысков Игорь Витальевич (Старший модератор)
• Дата редактирования: 08.02.2018, 13:33

 

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13254 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.50 от 13.09.2018