![]() |
|
|
![]()
|
|
| darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
Хочу: чтобы я ввёл строку и она отобразилась
Что я делаю:
Здесь для ввода строки используется функция AH = 0Ah, для которой DS:DX - адрес буфера выход: буфер содрежит введённую строку... Как я понимаю это происходит так: по адресу DX хранится введдённая строка и мы можем спокойно значение DX присвоить какой-нибудь перменной той же viv (у меня в коде), чтобы потом сторку вывести... В чём я не прав? --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
Почитай-ка поподробнее описание функций 0Ah и 09h. Относительно первой почитай что содержится в первых двух байтах буфера. Относительно второй почитай чем ограничивается выводимая строка.
|
|||
|
||||
| darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
Про 0Ah:
в первый байт что записывается не нашёл, зато про второй- туда загоняется длина строки, а сама строка записывается начиная с третьего байта..... Про 09h подробного описания не нашёл.... Значит мне надо:
--------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
09 выводит строку до первого встеченного "$".
Либо заполни свой буфер знаком. |
|||
|
||||
| darkness |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
anwe, это я понял...
а что касается ввода: Правильно ли я понимаю, что в DX хранится адрес начала буфера? И следовательно чтобы выйти на введённую строку нужно мы делаем
а после того чтобы вывести эту строку делаем:
Так? --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
||||
|
|||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
Да так. Только оптимизируй его. Ты перегоняешь из viv в dx туда-сюда.
|
|||
|
||||
| darkness |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
anwe, ругается TASM на строку mov viv, [dx+2]
говорит что illegal memmory reference. В чём ошибка?
--------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
||||
|
|||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
Эту ошибку он выдает потому, что из ячейки в памяти заносишь значение из ячейки в памяти. Команда mov этого не позваляет: должен быть один из операндов регистр.
Но после этого выдаст еще ошибку адрессации. До процессора 386 в качестве базы можно использовать только регистры bx, di, si и bp. |
|||
|
||||
| darkness |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
anwe, и какая альтернатива?
--------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
Как какая? Считывай переменную в регистр (любой), а после, если надо - в любую переменную.
|
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |