16.10.2018, 12:07 [+3 UTC]
в нашей команде: 3 010 чел. | участники онлайн: 10 (рекорд: 21)

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

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

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

:: правила

:: новости

:: участники

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

:: форум

:: блоги

:: поиск

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

:: наш журнал

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

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

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

:: поддержка

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

Версия системы:
7.51 (29.09.2018)

Общие новости:
24.09.2018, 16:49

Форум:
14.10.2018, 19:20

Последний вопрос:
16.10.2018, 11:56

Последний ответ:
16.10.2018, 11:24

Последняя рассылка:
15.10.2018, 19:45

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

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

Наша кнопка:

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

Отзывы о нас:
10.01.2010, 10:25 »
Dimon4ik
Спасибо, скачал SnapaShot - 68 kb v2.2. Очень интересная программка. Во первых удивила своим размером, а во вторых хорошими возможностями. Теперь при снятии некоторых объектов не приходится их вырезать в paint. Потому что в программе сам выбираешь что снять с экрана! Еще раз спасибо! Отличная программа! [вопрос № 175885, ответ № 258502]
16.12.2010, 23:56 »
Марина
Спасибо Вам огромное! [вопрос № 181285, ответ № 264799]
28.03.2010, 16:09 »
Ankden
Низкий поклон Вам! [вопрос № 177495, ответ № 260410]

РАЗДЕЛ • Assembler

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

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

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

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

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

Консультация онлайн # 193457
Раздел: • Assembler
Автор вопроса: Kdsfofwe21 (1-й класс)
Отправлена: 06.08.2018, 04:06
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе:
Изучал ассемблер, тасм, масм, фасм, интел и эйти энд ти синтаксисы, решил остановиться на фасме, как начал заниматься на windows 10, то естественно заметил что программы пишутся за счёт макросов, библиотек, апи, пытался найти чистый кодик (классичейский "hello world!" - через дос функцию и прерывание), но не нашел, поэтому и написал Вам, посоветуйте литературу, без макросов, или хотябы мануал, даже если и не большой. win10 без ntvdm, понятно что будет не так как обычно, но интересно начать, или хотя бы узнать как это делается на win10 :)
система в наличии: windows 10 x64,
предпочтителен: fasm
процессор: amd ryzen 5 1600
буду благодарен за ответ, спасибо :)

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

Здравствуйте, Kdsfofwe21!

Начиная с первых Windows прерывания как таковые отсутствуют, вместо них пользователю предлагаются стандартные функции, записанные в разные библиотеки DLL. Компилятор при своей установке создает INC-файлы(с константами и структурами данной библиотеки) и LIB-файлы(с таблицей экспорта). При компиляции программы в вызов функции подставляется нужное значение из INC-файла и данные в таблицу импорта из LIB-файла. А сам вызов превращается в CALL [ importTable:number ].

То, о чем Вы спрашиваете сохранилось в LINUX, поменялась разрядность регистров, но INT 80h остался.

Удачи!


Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 10.08.2018, 11:20

5
нет комментария
-----
Дата оценки: 10.08.2018, 13:03

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

+1

[подробно]

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

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

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

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

ID: 31795

# 1

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

© Цитата: Kdsfofwe21
система в наличии: windows 10 x64,

У Вас 64-х битная система, 16-ти битный код не будет на ней работать, поэтому Вам нужен DosBox.

© Цитата: Kdsfofwe21
предпочтителен: fasm

FASM-синтаксис несколько отличается от TASM/MASM, но в целом похож.
Основные различия касаются организации программы и обращения к переменным. В комплекте с компилятором идет инструкция на английском, но в сети можно найти и русскую версию.

© Цитата: Kdsfofwe21
пытался найти чистый кодик (классичейский "hello world!" - через дос функцию и прерывание),

А, что его искать, в одной из версий есть такой вариант:
Код (Assembler) :: выделить код
; fasm example of writing 16-bit COM program

	org	100h			; code starts at offset 100h
	use16				; use 16-bit code

display_text = 9

	mov	ah,display_text
	mov	dx,hello
	int	21h

	int	20h

hello db 'Hello world!',24h

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

• Отредактировал: Зенченко Константин Николаевич (Модератор)
• Дата редактирования: 06.08.2018, 11:01

Kdsfofwe21
1-й класс

ID: 402218

# 2

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

спасибо за советы, так же интересует вопрос, на windows 10 64, возможно ли написать подобный код на фасм, который Вы привели в ответе? Без включений библиотек и апи, и макросов?

• Отредактировал: Kdsfofwe21 (1-й класс)
• Дата редактирования: 06.08.2018, 15:52

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

ID: 31795

# 3

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

Практически это код FASM(;fasm example of writing 16-bit COM program==FASM пример написания 16-ти битных СОМ-программ ).
Скомпилировать компилятор сможет, но запустить его можно ТОЛЬКО на любом эмуляторе DOS, как вариант DOS Box

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Kdsfofwe21
1-й класс

ID: 402218

# 4

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

Имел ввиду что есть ли возможность, посредством регистров, и некоторых директива написать такой код в 64битном виндовсе
К примеру:
....
....
mov ah,09h
mov edx, message
Тут какое либо прервание аналогичное int 21h
.....
.....
message db 'Hello friends!$' ',


Естественно видел примеры в скачанном фасм примерах хелло ворлд, но там использовались инклюды виндовские и макросы.
К чему же такой вопрос, когда изучал под дос, то почему то думал, что отличие для 32 и 64 битых версиях будет название регистров и виды форматов в который надо компилировать.

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

ID: 31795

# 5

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

В Windows работа идет посредством API-функций, их два вида: GUI(оконные) и Console(консоль, похоже на командную строку). В Windows прерываний нет как таковых, на уровне ядра есть исключения - но это уже другая сказка о защищенном режиме. Ось загружается в реальном режиме(где есть прерывания BIOS, которые аналогичны DOS), переходит в защищенный режим, определяет все доступные ресурсы: память, диски, монитор, клавиатура, различные видео и сетевые карты внешних устройств, создает, что-то вроде менеджера ресурсов.

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

© Цитата: Kdsfofwe21
то почему то думал, что отличие для 32 и 64 битых версиях будет название регистров и виды форматов в который надо компилировать.

То о чем Вы говорите, сохранилось в LINUX, там везде идет INT 0x80, а в АХ, ЕАХ и т.д. передается номер вызываемой функции, а по остальным регистрам передаются другие параметры.
smile

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Kdsfofwe21
1-й класс

ID: 402218

# 6

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

Спасибо, за хорошее разъяснение

 

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

Яндекс Rambler's Top100

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

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

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