Здравствуйте, я новичок в программировании на ассемблере, и у меня есть пара вопросов по синтаксису фасма, если не трудно просветите:
1) Чтобы вызвать функцию в КОС нужно каждый раз расталкивать параметры по регистрам, я так понял такую запись можно сократить с помощью макросов, если не трудно напишите пример.
2) В исходниках КОС часто встречаются метки @@, зачем они?
Пока всё, заранее благодарю.
Новичок
Привет,
1. Пример использования mcall: http://kolibrios.org/?p=SVN&kind=file&l ... xample.asm
2. Метки являются "безымянными". Они не влияют на область видимости локальных меток (начинающихся с точки). Обращение к ним происходит при помощи трёх специальных символов: @f (соответствует ближайшей метке @@ ПОСЛЕ текущей инструкции), @b или @r (соответствует ближайшей метке @@ ДО текущей инструкции)
Почитать о FASM можно тут: http://flatassembler.net/docs.php
1. Пример использования mcall: http://kolibrios.org/?p=SVN&kind=file&l ... xample.asm
2. Метки являются "безымянными". Они не влияют на область видимости локальных меток (начинающихся с точки). Обращение к ним происходит при помощи трёх специальных символов: @f (соответствует ближайшей метке @@ ПОСЛЕ текущей инструкции), @b или @r (соответствует ближайшей метке @@ ДО текущей инструкции)
Почитать о FASM можно тут: http://flatassembler.net/docs.php
Или скачать русский переводmike.dld wrote:Почитать о FASM можно тут:
http://flatassembler.net/docs.php
http://www.wasm.ru/docs/6/fasm164manualrus.zip
К сложному нужно относиться как к простому, иначе ты так это и не поймешь,
Пользуюсь тремя инструментами:google, Википедия и мозг
Пользуюсь тремя инструментами:google, Википедия и мозг
я тоже новичек вообщем и нехочу никого грузить вопросами, но помогине выбрать хорошую книгу для изучения ассемблера , а то попадаються только книги с заголовками типа ассемблер под виндовс 32 итд.
Хочеться книгу поглобалнее
Хочеться книгу поглобалнее
Тут традиционно советуют Юрова.
"Assembler. Учебник для ВУЗов" Юров В.И.
http://padabum.com/d.php?id=2238 PDF
http://padabum.com/d.php?id=2238 PDF
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Спасибо большое
Не подскажете, при помощи системного прерывания int 10h видео режимы 19:9 256цветов есть?
Я прошу прощения, но в Колибри прерывание BIOS недоступно в режиме пользователя. Так же я не уверен, что оно доступно в режиме ядра.
Я для конкурса пишу графическую ос, и там на компе для презентаций разрешение экрана 19:9 (точно не помню) Так как моя ос графическая => я обратился на этот форум. В vesa1.2 понравился 116h но мне нужен 1:19 а 116h это 1024x768. Вкусных ссылок на эти темы я не нашел. решил спроситьSoUrcerer wrote:Я прошу прощения, но в Колибри прерывание BIOS недоступно в режиме пользователя. Так же я не уверен, что оно доступно в режиме ядра.
Это какое разрешение у экрана должно быть с такими пропорциями?
простите что всех запутал.
1366x768 16:9
1366x768 16:9
Сначала нужно получить список доступных режимов. Например на одном из моих ноутов в синем окне загрузке 1366x768 вполне доступен для выбора и работает нормально. Если видеокарта для Vesa не держит указанный режим, то выставлять его бесполезно.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
это разрешение на убуну и виндовс идет, я не знаю вот что здесь написать(в место 13h):Mario_r4 wrote: Если видеокарта для Vesa не держит указанный режим, то выставлять его бесполезно.
Code: Select all
org 100h; я ядро в com файлах с винды запускаю, поудобней чем с виртуалкой возиться
mov ah, 0
mov al,13h; 13h = 320x200 pixels, 256 colors. а хочеться разрешение-то по больше!
int 10h
Ты действительно всех запутал:Tain_Play wrote:простите что всех запутал.
1366x768 16:9
1) Если я не ошибаюсь, пропорции монитора 19:9 не бывает - есть 16:9. Что и оказалось в твоём случае.
2) 116h - это 15-bit 1024x768, а ты сказал, что тебе нужно 256 цветов, а 15-bit - это 32768 цветов.
3) VESA 1.2 уже давно умерло, сейчас все карточки поддерживают VESA 3.0, так что смело можешь смотреть в списке VESA 3.0. И даже VESA 3.0 ничего не знает о широкоэкранных режимах (таких как 16:9) - в стандарте прописаны исключительно режимы в пропорции 4:3. Широкоэкранные режимы каждый производитель видеокарт может нумеровать как хочет.
4) Недостаточно знать пропорции монитора, так как у каждого LCD монитора свой родной режим, и ты, вероятно, хочешь выставить именно его. С пропорцией 16:9 может быть родной режим: 1280×720, 1366×768, 1600×900, 1920×1080 и другие. Я так понимаю, что у твоего монитора родной режим 1366×768. Если выставить не родной режим, то картинка будет смазанной.
Исходя из всего вышесказанного, тебе нужно на этом компьютере и этом мониторе запустить сначала что-то другое, кроме своей OS (например, ту же KolibriOS), чтобы узнать, какие режимы можно выставить через VESA в твоём конкретном случае. Если KolibriOS в твоём случае не покажет в списке 1366x768, тогда через VESA его вообще нельзя никак выставить, и нужно только писать драйвер.
Linux/Windows, скорее всего, и выставляют режим через драйвер.Tain_Play wrote:это разрешение на убуну и виндовс идет, я не знаю вот что здесь написать(в место 13h):
Можно попробовать в Linux узнать номер режима для Linux (и из него уже вычислить номер режима для VESA):
To show all the modes you can use # hwinfo --framebuffer (hwinfo is available in [community]), while at GRUB prompt you can use the vbeinfo command
Who is online
Users browsing this forum: No registered users and 0 guests