![]() |
|
![]() ![]() ![]() |
|
GLeBaTi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 1.2.2008 Где: г.Чебоксары Репутация: нет Всего: 0 |
написал под nasm, но криво работает(точнее не правильно работает). Я думаю проблема в jnb upper. Программа переделывает маленькие буквы в строке к верхнему регистру. |
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Около тех строк, что я изменил я поставил примечание со знаком *. НО!!! Я ещё никогда не писал под nasm, только под tasm, поэтому могут быть ошибки Это сообщение отредактировал(а) iff - 9.5.2010, 16:19 -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Кстате, получается некоторая неувязочка:
1) ты начинаешь программу с директивы org 0x100, как будто это программа типа COM, но в тоже время программа имеет 2 сегмента (код и данные), что возможно только в программе типа EXE. 2)Если это программа типа EXE, то тогда надо бы ещё определить сегмент стека, ведь его (стек) используют прерывания. 3) В программе типа EXE нужно инициализировать сегментные регистры и т.к. регистр cs не указывет на psp, то использовать прерывание 0x20 проблематично 4) При выводе сообщений должен быть перевод строк (был вывод 0x0D0A). а то они накладываются друг на друга Я вод для tasm написал вполне рабочую программу:
Это сообщение отредактировал(а) iff - 9.5.2010, 16:21 -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
GLeBaTi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 1.2.2008 Где: г.Чебоксары Репутация: нет Всего: 0 |
В общем нашел кучу ошибок, но главная - то, что когда вводится строка с клавиатуры и нажимается ентер, то не ставится символ конца строки.
Только не могу понять, почему у меня выводится полученная строка в начале: http://s45.radikal.ru/i109/1005/51/be91a8f77a0c.jpg |
|||
|
||||
GLeBaTi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 1.2.2008 Где: г.Чебоксары Репутация: нет Всего: 0 |
Всё. Надо было добавить символ переноса коретки.
|
|||
|
||||
iff |
|
||||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
GLeBaTi, А ты вообще ответы мои читал?
Добавлено через 3 минуты и 29 секунд И ещё, посмотри не коверкает ли твоя программа символы, отличные от латинских букв Например, введи abcABC[{]}! нв экран соответсятвенно должно выводится: ABCABC[{]}! Мой пример работет правильно. Добавлено через 7 минут и 19 секунд
Ставится символ 0x0D, т.е. код клавиши enter -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |