Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2012, 12:07   #1
us1gca
Новичок
Джуниор
 
Регистрация: 17.02.2012
Сообщений: 1
По умолчанию только взялсяся за ассемблер. но первая программа не работает

Пишу код в masm32. Вроде все правильно, но exe-файл не работает. Вот код:
Код:
.386
.model flat, stdcall
 option casemap :none   ; case sensitive

                                        ; подключение библиотек

 include \masm32\include\windows.inc
 include \masm32\include\kernel32.inc
 include \masm32\include\user32.inc

 includelib \masm32\lib\kernel32.lib
 includelib \masm32\lib\user32.lib
                                        ;раздел, где объявляются переменные, еще не имеющие значения
 .data
   

.code
start:
mov AH,09                               ; функция 09 - вывод символов на 'trhfy
mov AL,92                               ; ASCII-код буквы Т
mov BH,0                                ; видеостраница 0
mov BL,7                                ; атрибут символа, 7 - белый цвет на черном фоне
mov CX,1                                ; количество символов 
int 10                                  ; прерывание для вывода "*"
mov ah,0                                ; функция 0 - ввод символа с клавиатуры
int 16                                  ; вызов прерывания
int 20                                  ; выход из прграммы

end start

Последний раз редактировалось Stilet; 17.02.2012 в 12:22.
us1gca вне форума Ответить с цитированием
Старый 17.02.2012, 12:22   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

us1gca
Смесь из частей программы для Windows (строки от .386 до .data) и программы для DOS (16-разрядные регистры, int 10h, int 16h, int 20h) определись для ДОС или Виндовз программа, внимательно перечитай учебник и напиши программу нормально
Mikl___ вне форума Ответить с цитированием
Старый 27.02.2012, 11:40   #3
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

Данные команды int можно использовать в Win приложение, но при условие, что если ты пишешь драйвер. А обычные .exe приложения запускаются в виртуальной машине, в режиме пользователя т.е. имеют ограничения такие как: непосредственное использование системных ресурсов (системная память в диапазоне адресов 000000h до 0fffffffh порты i/o и др.), использование привилегированных команд процессора (int, in/out,
Команда Выполняемые функции
LGDT Загрузка регистра глобальной таблицы дескрипторов GDTR
LLDT Загрузка регистра локальной таблицы дескрипторов LDTR
LIDT Загрузка регистра таблицы дескрипторов прерываний IDTR
LTR Загрузка регистра задачи TR
LMSW Загрузка слова состояния машины MSW
CLTS Сброс флага переключения задачи
HLT Останов процессора и др.).

Попытки пользовательских приложений осуществлять это останавливаются.

А DOS приложения запускаются в параллельно в разных виртуальных машинах и им предоставляются некоторые возможности процессора реального режима (х86).
wanes101 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комментарии. Только при пин-коде. Почему работает только 1 пи код? Bushel PHP 1 23.10.2010 18:21
программа работает только при проходе F10 .... user1990 Общие вопросы C/C++ 4 14.10.2010 15:38
Первая программа... ViJey Помощь студентам 6 27.09.2010 20:49
Фоновая программа корректно работает только пол дня (использовал таймер) TwiX Общие вопросы Delphi 2 06.09.2010 17:57
Группы символов, состоящие только из латинских букв, если первая буква группы входит в нее еще только оди Ela Помощь студентам 0 29.04.2010 13:41