|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.11.2008, 12:23 | #11 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 239
|
функция INT 10h AH=13h не подразумевает символа конца строки.....
синтаксис её такой: AH=13h AL бит 0 устанавливаеся в 1 если после вывода надо переместить курсор в конец строки. AL бит 1 устанавливается в 1 если для каждого символа указывается атрибут отдельно. В этом случае каждый символ строки должен быть представлен в виде 2х байт (символ-атрибут). (но это неудобно. так што лучше в 0 оставть). BH-номер видеостаницы BL-атрибут для символов если первый бит AL=0 CX-колличество символов DH,DL-начальное положение (строка и столбец) ES:BP-адрес начала строки в памяти.
Надо бы избавиться от привычки ставить многоточие.....
|
07.11.2008, 13:10 | #12 |
Пользователь
Регистрация: 23.06.2008
Сообщений: 77
|
Min,
это да, символ конца строки лишний.. с остальным все ясно, под виндой все работает как надо.. без ОС символы не те |
12.11.2008, 01:25 | #13 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 239
|
кириллица без ОС выводиться не будет... а с 0 по 127 символы выводятся... тока што попробовал)))) возможно ты ds криво настроил
Надо бы избавиться от привычки ставить многоточие.....
|
12.11.2008, 12:10 | #14 |
Форумчанин
Регистрация: 02.04.2008
Сообщений: 358
|
просто перегрузить таблицу знакогенератора и что угодно будет выводиться
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666 mail: airyashov(а)inbox.ru |
12.11.2008, 12:51 | #15 | |
Пользователь
Регистрация: 23.06.2008
Сообщений: 77
|
Цитата:
вот об этом тоже хотелось бы узнать поподробнее. |
|
12.11.2008, 13:28 | #16 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 239
|
лучше использую FASM.... он может генерить bin файлы....... у него просто вначале задаешь:
use16 Код:
Код:
Надо бы избавиться от привычки ставить многоточие.....
|
12.11.2008, 16:58 | #17 |
Пользователь
Регистрация: 23.06.2008
Сообщений: 77
|
вот я TASM юзаю, генерится com-файл, он чем-то отличается от bin-файла? у меня тоже сегментные регистры все настроены на один адрес, точнее, на адрес CS, не совсем понятно, зачем ты настраиваешь на 0.
еще не понятно почему такое начальное смещение org 0x7C00. И обязательно ли прописывать выравнивание на 512 - rb 510-($-boot)? |
12.11.2008, 17:09 | #18 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
После POST BIOS вызывает прерывание 19h, читает первый сектор, записывает его по адресу 0x7C00 и туда же передаёт управление. Так сложилось исторически COM-файлы грузятся с адреса 0x100, т.е. адреса далее будут неправильными. Само смещение в файл нигде не записывается, оно используется на этапе компиляции для вычисления всех адресов
пыщь
Последний раз редактировалось JTG; 12.11.2008 в 17:11. |
12.11.2008, 17:18 | #19 |
Пользователь
Регистрация: 23.06.2008
Сообщений: 77
|
JTG,
если все так, то в этом и есть причина... Придется bin-файл делать, с помощью fasm, какие еще есть способы? |
13.11.2008, 10:16 | #20 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 239
|
com файл не скомпилится без org 100h..... это место для PSP выделяется.... можно вручную настроить ds на 7C00h (не забудь што это физический адрес, а сегментный 7C0h) .... но когда я так делал на tasm все равно какая то чепуха получалась.....
Код:
Надо бы избавиться от привычки ставить многоточие.....
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прерывания и asm в Си | BOBAH13 | Общие вопросы C/C++ | 7 | 05.08.2008 15:52 |
прерывания | sergei64_89 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 22.04.2008 13:37 |
Операторы прерывания | Иринкаа | Общие вопросы Delphi | 13 | 27.11.2007 21:52 |