Vladimir
Vladimir
Как вариант, можно прочитать параметры фреймбуфера из конфигурационных регистров
Vladimir
Vladimir
Вообще стартовый адрес может варьироваться от режима к режиму, согласно спецификации
Vladimir
Можно пробежаться по всем режимам и узнать максимум и минимум, последний, скорее всего, совпадёт с базой из BAR'ов, но это не точно
Eugene
Vladimir
Vladimir
Теоретически, наверное, (x100000000 - 640 * 480 * 2) & 0xFFFFF000
Eugene
Eugene
Eugene
Кто там писал про незаслуженный бан в чате за вход — читайте закреп.
LISP
Есть у кого справка по команде STOS и как она используется?
В плане расширенно.
Aiwan \ (•◡•) / _bot
Eugene
✌️
Кто шарит в VESA и работе с LFB?
Я не понимаю, как видеопамять в LFB работает. Это какой-то трындец! Если просто копировать заготовленный ранее рисунок в видеопамять из обычной памяти, то всё ок. Если выводить по точкам, то ощущение, что память не линейная, а хз какая.
Eugene
Вот это должны быть изогнутые линии (вертикальные, горизонтальные, диагональные... они случайным образом генерируются), а выводится такая хрень. В DOSBox при этом всё норм. Это режим 800х600, 16 бит.
Eugene
Eugene
Вот я ещё писал как-то (только там про другой видеорежим)...
Eugene
Фигня какая-то...
Пишу подряд строку — выводится группа из 4 пикселей, затем 12 пропкскается, затем снова 4, затем 12 пропускается.
Но если я пишу со смещением +4, т.е. не в 0..3, 16..19, 32..35, а 4..7, 20..23, 36..39, то заполняется вторая четверть экрана.
Если смещение +8, то третья четверть, +12 — четвертая.
Т.е. экран как будто так:
+0 (смещение) = 0,0 (координаты)
+1 = 1,0
+2 = 2,0
+3 = 3,0
+4 = 0,50
+5 = 1,50
+6 = 2,50
+7 = 3,50
+8 = 0,100
+12 = 0,150
+16 = 4,0
+17 = 5,0
...
Но почему-то, когда пишешь 64000 байт, то заполняется только четверть.
И если пишешь 64000*4, то заполняется всё.
Eugene
Вывожу каждый 4-й пиксель, получаются вертикальные полоски.
(это тоже старое сообщение, как продолжение)
LISP
LISP
Eugene
Спасибо.
Да и вообще, в чём проблема забить в гугле? Вопрос-то простой.
LISP
Vladimir
Фигня какая-то...
Пишу подряд строку — выводится группа из 4 пикселей, затем 12 пропкскается, затем снова 4, затем 12 пропускается.
Но если я пишу со смещением +4, т.е. не в 0..3, 16..19, 32..35, а 4..7, 20..23, 36..39, то заполняется вторая четверть экрана.
Если смещение +8, то третья четверть, +12 — четвертая.
Т.е. экран как будто так:
+0 (смещение) = 0,0 (координаты)
+1 = 1,0
+2 = 2,0
+3 = 3,0
+4 = 0,50
+5 = 1,50
+6 = 2,50
+7 = 3,50
+8 = 0,100
+12 = 0,150
+16 = 4,0
+17 = 5,0
...
Но почему-то, когда пишешь 64000 байт, то заполняется только четверть.
И если пишешь 64000*4, то заполняется всё.
Значит неправильно определяешь формат
Vladimir
Там же есть функция, которая возвращает формат пикселя.
Eugene
Значит неправильно определяешь формат
А при чём тут формат? Если режим 16 бит на пресекль и есть кол-во байт на строку, значит адрес пикселя вычисляется как Y*BytesPerScanLine + X*2, так? А пиксель рисуется мимо по факту. Не в цвете проблема, а в позиции.
Vladimir
Aiwan \ (•◡•) / _bot
Vladimir
Eugene
Отладчиком бы посмотреть...
arichild
Здраствуйте, кто может пожалуйста помочь с решением задачи по masm32?
DarkPerl
arichild
Задача:
Процедура Str_scan производит сканирование строки для поиска первого вхождения определенного символа.
Входные параметры в ES:DI содержат указатель на строку, а в регистре AL находится символ для поиска.
Возвращаемые значения: если символ найден ZF=1 и в AX содержится позиция соответствующего символа (0..N). В противном случае ZF=0 и AX= -1
Ask
repne scasb в помощь
DarkPerl
DarkPerl
Тем более, что примеров масса, в том же пакете masm32 есть примеры
arichild
Да, вроде решение нашлось верное. Не разбираюсь и не понимаю ассемблер, но колледж требует так что деваться некуда. Приходиться выкручиваться. Спасибо всем за ответы
arichild
У меня направление веб-программирование поэтому я больше разбираюсь в этом, но ассемблер решили как "бонус" добавить
DarkPerl
arichild
Ну С больше идет для разработки программного обеспечения вроде. А для сайтов хватает php, js ну и соответственно html/css
DarkPerl
А там, делайте выводы сами, учить или нет
Во флудилку.
DarkPerl
Сергей
Посоветуйте вводный урок видео или статью чтобы заинтересовать человека асмом
Eugene
Eugene
Pyrit, Gyroid, Symetrie, Everbloom, spongy, Bit Runner 2048
Anonymous
8 поинтеров ? Такие бывают ?
Anonymous
А, ок )
Eugene
У быка бела губа? :)
Anonymous
Да, ага )
Artur
Привет всем, пытаюсь написать программу , в которую вводишь буква на английском языке, и программа выводит все буквы английского алфавита , начиная с этой буквы до буквы z .
Пример
input: x
output : xyz
*Требуется сделать проверку на input, чтобы char по таблице ASCII был от 'a' до 'z'.
Artur
Artur
Так
И что тут не работает?
После ввода символа или сразу?
А пошагового отладчика в этой замечательной программе нет?
Artur
*UPDATE
В строке 30 , 31 заменил:
'a' на $t0
'z' на $t1
И не важно какую букву ввожу всегда пишет Ivalid input
Artur
Artur
Думаю, что ошибка здесь , как правильно проверить или ,char который я ввожу меньше чем char a ?
А где ты сравнимвашеь
Artur
Я бы писал типа cmp, а потом je jne ну в таком духе
Artur
А блин это арм, да?
Artur
MIPS
Artur
MIPS MARS 4.5
Ну удали все и оставь только сравнение и посмотри работает ли оно
Микропрограмму напиши которая два символа ascii сравнивает
Artur