![]() |
|
|
![]()
|
|
| Logree |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: нет Всего: 2 |
Вобщем так, поставил я себе на VMware MS-DOS 6.22 кинул туда tasm 7 версии и сижу шаманю...
и вроде бы все хорошо вывод работает но только я этот вывод помещаю в процедуры ли в метки как сразу что-то идет не так хотя во время компиляции проблем нет... вот прога
файл есть а он ни чего не выводит просто пустая строчка.. Ps может это по тому что сначала тасм требовал некий {что-то там}16bi.ovl и rtm.exe. а я ему слил эти файлы из 7 паскаля? -------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
|||
|
||||
| airyashov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
"mov ax,9" и "mov ah,9" это не одно и тоже
"mov ax,9" эквивалентно "mov al,9" ихмо "mov ax,0900h"это верно -------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
| izlesa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 17.7.2008 Репутация: нет Всего: нет |
во-первых, как было сказано выше
mov ah, 09h либо mov ax, 0900h во-вторых CF выставляется в 1 когда произошла ошибка, а у тебя в программе наоборот по логике. так что измени проверку jnc good jc Error |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 1 Всего: 372 |
|
|||
|
||||
| Logree |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: нет Всего: 2 |
всем спасибо... бывает. неусмотрел
-------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
|||
|
||||
| Logree |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: нет Всего: 2 |
Почему-то программа зависает после вывода hello, где ошибка? -------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
Это как бы Program termination - выход по-русски. А почему оно зависает... покажи опции компиляции и линковки. Включая переменные среды. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Logree |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: нет Всего: 2 |
не пропечаталось
00 - > 0D ![]() и я забылл сделать вывод вводимых символов исправил все равно что-то не так
я её в чистом MS-DOS запускаю
-------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
||||
|
|||||
| airyashov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
Я что-то ваш код не догоняю
Int 21h, функция ODh Сброс диска Вход: AH=ODh Описание. Сбрасывает диск (записывает на диск все файловые буферы). Файл, размер которого изменился, должен быть предварительно закрыт (при помощи функций 10h или 3Eh). Добавлено @ 13:55 Прерывание int 16h Функция 00h (10h). Чтение символа клавиатуры с ожиданием. Читает из кольцевого буфера ввода символ и скан-код. После считывания они удаляются из буфера и возвращаются в регистре AX. Если буфер пуст, ожидает ввода. Каждой клавише на клавиатуре соответствует так называемый скан-код, соответствующий только этой клавише. Этот код посылается клавиатурой при каждом нажатии и отпускании клавиши и обрабатывается в BIOS обработчиком прерывания Int 09h. Функция 00h даёт возможность получить код нажатия, не перехватывая этот обработчик. Если нажатой клавише соответствует ASCII-символ, то: AL – ASCII-код символа, AH – скан-код клавиши. Если нажатой клавише соответствует расширенный ASCII-код, то: AL – 00h, AH – расширенный ASCII-код. Вызов: AH = 00h (83/84-key). Возврат: AL = ASCII-код символа, изображённый на клавише/00h, AH = скан-код/расширенный ASCII-код клавиши. Функция 10h (AH = 10) – усовершенствованный вариант функции 00h для расширенной клавиатуры (101/102-key). Позволяет получить расширенные ASCII-коды для клавиш F11, F12, а также для ряда других комбинаций. В качества признака управляющих клавиш или их комбинаций, помимо значения 00h, используются 0Ah, 0Dh и E0h. Но даже если измените, все равно код будет не рабочий, почему подумайте сами, если Я напишу за вас толку не будет. Это сообщение отредактировал(а) airyashov - 13.8.2008, 13:59 -------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |