| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Ассемблерная вставка, регистр AL |
| Автор: neic 15.4.2012, 12:11 | ||||
| Добрый день. Есть код с ассемблерной вставкой:
Ругается следующими ошибками:
на все строчки которые содержат команду mov Пробовал и char, и int. Не получается, не знаю какой ещё тип заюзать. Регистр AL, как я почитал в интернете 1 байтовый, ну а int 4 байтовый, т.е. уже ошибка. Мне нужно передать значение регистра AL в программу и вывести позиционный код и ASCII код. Заранее спасибо. |
| Автор: disputant 15.4.2012, 12:19 |
| dword - это 4 байта. Попробуйте byte Ну и потом - x и y у вас явно 32-битные, dword. Опять же несоответствие... И - у вас программка под DOS? Есть у меня подозрение, что вам надо не mov ah, dword ptr 00h а xor ah, ah - вы ж его просто обнулить хотите? Вобщем, честно говоря, у меня осталось тягостное ощущение, что то, что вы хотите сделать, надо делать не совсем так, если не совсем не так... |
| Автор: borisbn 15.4.2012, 13:15 |
| neic, в Си для этого есть kbnit() и getch() |
| Автор: volatile 15.4.2012, 13:51 |
Это же досовское прерывание. Вы это серьезно собираетесь в 32 битном приложении юзать? |
| Автор: disputant 15.4.2012, 15:10 | ||||
Ему надо еще и код клавиши, а это getch() не дает. Тут можно было бы воспользоваться чем-то типа int86(). Но то, что он ХОТЕЛ написать - это только в real mode... А то, что написал - вообще никуда... Добавлено через 59 секунд
Ну, если совсем строго - то BIOS'овое |