25.07.2017, 19:58 [+3 UTC]
в нашей команде: 2 069 чел. | участники онлайн: 1 (рекорд: 21)

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

:: консультации

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

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

:: правила

:: новости

:: участники

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

:: форум

:: блоги

:: поиск

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

:: наш журнал

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

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

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

:: поддержка

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

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
25.07.2017, 12:22

Последний вопрос:
25.07.2017, 13:46

Последний ответ:
25.07.2017, 16:54

Последняя рассылка:
25.07.2017, 16:15

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

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

Наша кнопка:

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

Отзывы о нас:
05.01.2010, 12:25 »
kot31
спасибо,то что нужно! [вопрос № 175825, ответ № 258366]
19.12.2011, 14:03 »
Андрей Валерьевич
Советы, в большинстве своем, грамотные, а повторенье мать ученья.
18.04.2012, 15:40 »
Arman Muratuly
Четко и ясно. Спасибо. [вопрос № 185840, ответ № 270558]

РАЗДЕЛ • Assembler

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

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

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

Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 326
Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 276
Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 140

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

Консультация онлайн # 191222
Раздел: • Assembler
Автор вопроса: Caesar (Посетитель)
Отправлена: 14.07.2017, 09:35
Поступило ответов: 1

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
По Калашникову, данный код:

Код (Assembler) :: выделить код
CSEG segment
 org 100h
 _beg:
 mov ax,0B800h
 mov es,ax
 mov di,0
 mov ah,31
 mov al,1
 mov es:[di],ax

 mov ah,10h
 int 16h

 int 20h

 CSEG ends
 end _beg


должен вывести смайл, но (см приложение.)

smile
Евгений.

Редактирование
--------

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

-----
 Прикрепленный файл (кликните по картинке для увеличения):

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

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

Здравствуйте, kveladze.kz!
Все примеры писались в среде ДОС.
Практически все работает и в режиме эмуляции в среде winxp+ с несколькими исключениями.
Одно из них - прямая запись в видеобуфер.
Чтобы работало, надо обязательно в начале добавить инициализацию видеорежима

Код (Assembler) :: выделить код
mov ax,0003h
int 10h


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

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

0

[подробно]

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

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

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

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

ID: 7438

# 1

= общий = | 14.07.2017, 09:45 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Все примеры писались в среде ДОС.
Практически все работает и в режиме эмуляции в среде winxp+ с несколькими исключениями.
Одно из них - прямая запись в видеобуфер.
Чтобы работало, надо обязательно в начале добавить инициализацию видеорежима

mov ax,0003h
int 10h

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 2

= общий = | 14.07.2017, 09:52 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Спасибо! smile smile smile
Я тащусь от этого ресурса) все быстро, оперативно!

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

ID: 7438

# 3

= общий = | 14.07.2017, 11:11 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Да пожалуйста!
На счет оперативности, это, как получится... smile
В общем-то, тут найдется парочка фанатов Ассемблера... smile
Так что, ждем-с... smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

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

ID: 7438

# 4

= общий = | 14.07.2017, 12:23 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Кстати, текст программы программы лучше оформлять в виде блока code
Проще всего, нажав на кнопочку {aa}, кроме того, там можно выбрать язык Ассемблер или любой другой
и высоту блока, например, 200. Это в случае, есть текст кода слишком длинный smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 5

= общий = | 14.07.2017, 12:30 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

.code
start:
вот здесь?
.end start

Что за кнопочка {aa} ?
Где можно выбрать?
Что за высота блока?

© Цитата: Лысков Игорь Витальевич
Практически все работает и в режиме эмуляции в среде winxp+ с несколькими исключениями.

Какие еще исключения?

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

ID: 7438

# 6

= общий = | 14.07.2017, 12:39 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

© Цитата:
Что за кнопочка {aa} ?
И при задании вопроса, и при записи в мини-форум, сверху есть ряд кнопочек smile
код надо вписывать между [ code] [ /code] (без пробелов) smile

Добавлю, что справа есть "еще кнопки", нажав на которую, появится еще много чего интересного...

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

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

Caesar
Посетитель

ID: 401251

# 7

= общий = | 14.07.2017, 12:45 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

АААААА Понятно))))))

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

ID: 7438

# 8

 +1 
 
= общий = | 14.07.2017, 12:45 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

© Цитата:
Какие еще исключения?
Я имел в виду неодинаковую работу под ДОС и в эмуляторе.
Одно из них, некорректность прямой записи в видеопамять.
Об остальных узнаете по ходу изучения... "Надо есть слона по частям"... smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 9

= общий = | 14.07.2017, 12:46 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Человеческая натура, охота все и сразу))))

Caesar
Посетитель

ID: 401251

# 10

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

а где можно достать материалы (файлы приложения), которые идут к книге Калашникова?

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

ID: 7438

# 11

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

Естественно, у нас smile
Вот самораспаковывающийся архив: enclosures.exe (148.1 кб)

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 12

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

smile smile smile Вы мне нравитесь все больше и больше! smile smile smile

Caesar
Посетитель

ID: 401251

# 13

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

как посмотреть на форуме все свои консультации (вопросы заданные мной и ответы на них), только по номеру?

Caesar
Посетитель

ID: 401251

# 14

= общий = | 14.07.2017, 17:27 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

как установить ассемблер и все соответствующие инструменты (линковщик, отладчик..) на Linux Ubuntu 16.04.1 ?

и как компилировать и линковать файл asm?

• Отредактировал: Caesar (Посетитель)
• Дата редактирования: 14.07.2017, 17:27

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

ID: 7438

# 15

= общий = | 14.07.2017, 17:28 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

1) Нажмите в своем сообщении на "Профиль участника" (иконка - человечек на книжке)
2) Нажать на "посмотреть" в "Отправлено вопросов: N | посмотреть (N) " (на данный момент N=2, т.к. было два вопроса)

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

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

ID: 7438

# 16

= общий = | 14.07.2017, 17:40 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Для Ubuntu не писал. Руки не доходят до Linux-а. Думаю, Константин Николаевич тоже для Linux-а не пишет.
Но там, насколько знаю, используют пакет fasm.

Сейчас я вообще в основном работаю с микроконтоллерами типа AVR, ARM
Нельзя объять необъятное... smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 17

= общий = | 14.07.2017, 17:44 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

просто на рабочем компе у меня Windows а на домашнем linux. Я хотел и дома тоже заниматься.
Придется через виртуалку))))

Спасибо за ответы. smile

Caesar
Посетитель

ID: 401251

# 18

= общий = | 17.07.2017, 14:58 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Здравствуйте. Созрел вопрос!
При выводе символа на экран, все происходит превосходно, но если я начинаю менять смещение di, начиная с 3-х (до 3-х - нормально) то выводится не рожица.
В чем проблема?

-----
 Прикрепленный файл (кликните по картинке для увеличения):

• Отредактировал: Caesar (Посетитель)
• Дата редактирования: 17.07.2017, 14:59

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

ID: 7438

# 19

 +1 
 
= общий = | 17.07.2017, 15:24 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Для начала надо знать структуру видеоинформации:
Все символы кодируются двумя байтами, сначала код, следом атрибут(цвет).
Задавая адрес 3, тем самым попадаем на атрибут, а не на символ.

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 20

= общий = | 17.07.2017, 15:41 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

А ну точно, мог сам догадаться. Спасибо!
Я по тексту так понял, что смещение не только в памяти, но и на экране (это сдвиг на 1, 2,3,... и т.д. позиции).
Мой разум был одурманен)))

Caesar
Посетитель

ID: 401251

# 21

= общий = | 18.07.2017, 07:21 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Здравствуйте.
Как сделать в видеорежиме, не фиксированный размер экрана?
Для того чтобы можно было вывести каждый символ по нескольку раз, и прокрутить посмотреть что получилось?
Как в приложении, но чтоб можно было увидеть все символы?

-----
 Прикрепленный файл (кликните по картинке для увеличения):

Caesar
Посетитель

ID: 401251

# 22

= общий = | 18.07.2017, 07:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Вот кое что поменял (приложение), выходит ошибка, что нет поддержки широкоэкранного монитора. Это можно как то обойти?

-----
 Прикрепленный файл (кликните по картинке для увеличения):

Caesar
Посетитель

ID: 401251

# 23

= общий = | 18.07.2017, 08:44 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Помогите понять. Написал программку для для изучения cli и sti. На время ее работы (примерно 7 сек.), cli должен был заблокировать прерывания, но компьютер реагирует на все (мышь, клавиатура, и т.д. ).
Почему?

-----
 Прикрепленный файл (кликните по картинке для увеличения):

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

ID: 7438

# 24

 +1 
 
= общий = | 18.07.2017, 10:15 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

© Цитата:
Помогите понять. Написал программку для для изучения cli и sti. На время ее работы (примерно 7 сек.), cli должен был заблокировать прерывания, но компьютер реагирует на все (мышь, клавиатура, и т.д. ).
Почему?
Ну вот Вы столкнулись со вторым отличием работы под ДОС и под Windows. В режиме эмуляции команда запрета/разрешения прерывания не работает. Скажу больше: эта команда является привилигированной, т.е не будет работать и в обычных программах под Windows, она даже вызовет исключение, т.е прерывание. Под Досом она просто игнорируется. Ну не имеет права пользовательская программа управлять этим глобальным флагом.

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 25

= общий = | 18.07.2017, 11:03 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Ясненько. Спасибо!!! А вопрос на счет изменения экрана вывода консоли в видеорежиме также является исключением?

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

ID: 7438

# 26

= общий = | 18.07.2017, 11:16 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Момент, отвечал с телефона. Несколько неудобно. Добрался до компа smile Итак: smile

© Цитата:
Как сделать в видеорежиме, не фиксированный размер экрана? Для того чтобы можно было вывести каждый символ по нескольку раз, и прокрутить посмотреть что получилось? Как в приложении, но чтоб можно было увидеть все символы?
Тут все работает в штатном режиме. Данная задача решается прокруткой экрана с помощью функций 6 и 7 прерывания 10h, как реакцию на какие-нибудь кнопки. Естественно, надо обеспечить все самому. Прокрутку, заполнение освободившегося места...
Возможно, это будет у Калашникова дальше. Честно говоря, даже не знаю smile Не смотрел. Как-то не было необходимости.

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

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

ID: 7438

# 27

= общий = | 18.07.2017, 11:19 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

А Alt-Enter разве не переводит окно на весь экран?

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

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

ID: 7438

# 28

= общий = | 18.07.2017, 11:20 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Код лучше подавать текстом - ничего не видно...

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

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

ID: 7438

# 29

= общий = | 18.07.2017, 11:22 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

Система не поддерживает fullscreen mode...
Какая ОС?

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 30

= общий = | 18.07.2017, 11:24 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

ОC Windows 7 32bit

Caesar
Посетитель

ID: 401251

# 31

= общий = | 18.07.2017, 11:35 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

alt+Enter, также свойства окна консоли(все меняется кроме размера) системой не воспринимаются, выходит ошибка "Эта система не поддерживает работу в полноэкранном режиме".
Если попробовать что то поменять программно, то сообщение на английском языке (см. вопрос выше в приложении), а если из ос (настройки или alt+Enter) то на русском.

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

ID: 7438

# 32

= общий = | 18.07.2017, 11:50 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Caesar:

В сущности, можно и так посмотреть. Т.к. программы под ДОС никому сейчас не нужны.
Ознакомиться можно и так.
Надо переходить на программирование под Windows. Там, в консоли, все работает

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Caesar
Посетитель

ID: 401251

# 33

= общий = | 18.07.2017, 12:50 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Спасибо!! smile

Зенченко Константин Николаевич
Модератор

ID: 31795

# 34

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

© Цитата: Caesar
Вот кое что поменял (приложение), выходит ошибка, что нет поддержки широкоэкранного монитора. Это можно как то обойти?

Никак. В современных видеокартах нет текстовых режимов, несколько из них имитируются, для совместимости и больше ничего.

© Цитата: Caesar
Для того чтобы можно было вывести каждый символ по нескольку раз, и прокрутить посмотреть что получилось?

Функции прокрутки тут тоже не помогут, т.к. видимая часть текстового режима это область памяти 0хВ800:0х0000 - 0х0F00, и функция 6 копирует ячейки 0х00А0 => 0x0000, 0х00А1 => 0x0001, 0х00А2 => 0x0002 и т.д. тем самым затирая верхнюю строку снизу-вверх, для функции 7, тоже самое только сверху-вниз. Только после этого память читается видео-контроллером и отображается на экране.
Если нужно организовывать именно прокрутку, то сами данные можно будет записывать в память выше 0хВ800:0х0F00, а отображение имитировать записью в текущую страницу

Caesar
Посетитель

ID: 401251

# 35

= общий = | 19.07.2017, 14:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Спасибо за ответ!!! (Как немного наберусь опыта поиграюсь с прокруткой, ради интереса)

 

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

Яндекс Rambler's Top100

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

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

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн