Page 30 of 77
Re: Помогите новичку
Posted: Sat Apr 28, 2012 7:33 pm
by Mario
int 20h
В Колибри не работает.
А вообще что мешает попробовать скомпилировать и запустить?
Re: Помогите новичку
Posted: Sat Apr 28, 2012 7:39 pm
by SoUrcerer
Code: Select all
mov ax,c0 ;помещаем _адрес_ данных в ах
Не сработает, я думаю. Ассемблер 32-битный, а не 16-битный.
Code: Select all
mov eax, c0
...
add eax,1 ;может, лучше так, чем mov ax,ax+1?
Re: Помогите новичку
Posted: Sat Apr 28, 2012 7:42 pm
by Scampada
mario,
Совершенно верное замечание, просто в любом случае высока вероятность, что мне придется приходить сюда и спрашивать немного по-другому: "
Пытался сделать вот так,
почему оно не работает?"
SoUrcerer,
add eax,1 ;может, лучше так, чем mov ax,ax+1?
Да сто пудов лучше, я просто еще не помню наизусть всех инструкций.

помнил, что должно быть что-то типа "inc" или "add", но неточно.
Re: Помогите новичку
Posted: Sat Apr 28, 2012 9:24 pm
by Scampada
Spoiler:


Ругается на строку
mov [eax],1
в чем я туплю?
PS длч пробы переделываю пример из SDK во избежание других ошибок...
Re: Помогите новичку
Posted: Sat Apr 28, 2012 9:40 pm
by Mario
Ругается как? Одного сообщения о ругани для определения причины недостаточно. Обычно FASM вполне внятно указывает на грубые синтаксические ошибки.
Re: Помогите новичку
Posted: Sat Apr 28, 2012 9:45 pm
by Scampada
А я по-тупому пытаюсь компилировать в Tinypad

Он просто мигает курсором и не запускает.
Сейчас попробую в fasm.
Re: Помогите новичку
Posted: Sat Apr 28, 2012 9:51 pm
by Mario
Не обязательно компилировать непосредственно в FASM - всего то и нужно запустить BOARD (доска отладки) и смотреть на что ругается там.
Re: Помогите новичку
Posted: Sat Apr 28, 2012 10:08 pm
by Scampada
Ну, я пытался запускать подпункт "Доска отладки" прямо в Тайнипэд, в пункте меню "Компиляция", но ничего не происходит, ничего не запускается.
Так что...
Spoiler:

Я просто забыл определить размер.
mov byte [eax],1, скорее всего, даст нужный результат.
Почему "скорее всего" - потому что Колибри гружу с образа дискеты на флешке и сразу проверить не могу. Основная система Ubuntu, и с виртуальными машинами я практического опыта работы не имею (тем более с эмуляцией таких нестандартных ОС), так что каждый раз просто перезагружаюсь.
всего то и нужно запустить BOARD
А, ясно. В следующий раз посмотрю, что да как. А я-то думал, почему она ничего не показывает, если ее просто так запустить.

Re: Помогите новичку
Posted: Sat Apr 28, 2012 10:17 pm
by SoUrcerer
Code: Select all
sudo apt-get install qemu
qemu -fda ~/kolibri.img -boot a
В Ubuntu. Путь заменить на свой.
Re: Помогите новичку
Posted: Sat Apr 28, 2012 10:19 pm
by Mario
Зачем же так мучаться? Есть qemu и есть замечательная команда mount, когда нужно достать или положить файлы в образ.
Re: Помогите новичку
Posted: Sat Apr 28, 2012 10:27 pm
by Scampada
Code: Select all
COMMAND> qemu -fda /media/KO/kolibri.img -boot a
open /dev/kvm: No such file or directory
Could not initialize KVM, will disable KVM support
pci_add_option_rom: failed to find romfile "pxe-rtl8139.bin"
Если с первой матерной строчкой я еще могу что-то предположить, то последняя непонятна чуть менее, чем полностью. rtl - видимо, realtek?
Re: Помогите новичку
Posted: Sat Apr 28, 2012 10:33 pm
by Scampada
Поставил пакеты kvm и pxe-kvm, помогло.
Притормаживает заметно в эмуляторе, по сравнению с "настоящей" загрузкой. Не только во времени отклика заметно, но и прорисовка происходит на глазах сверху вниз. Плюс курсор ведет себя неадекватно (но это, наверное, можно настроить через чувствительность, все же), разрешение чуток не то и видно хуже. Однако для пробных компиляций сойдет.

Re: Помогите новичку
Posted: Sat Apr 28, 2012 10:37 pm
by Mario
Можно попробовать поставить AQEMU и сформировать рабочую машину в графической оболочке. Какие то файлы прописанные по умолчанию отсутствуют.
А вообще вот
viewtopic.php?f=4&t=1344 я тут чего то писал давно уже.
Re: Помогите новичку
Posted: Sat Apr 28, 2012 10:49 pm
by Scampada
Spoiler:

Не понравился я эмулятору.
Re: Помогите новичку
Posted: Sat Apr 28, 2012 11:03 pm
by SoUrcerer
sudo apt-get install virtualbox
Будет побыстрее, чем qemu. Хотя чего уж там, реальная машина круче.