
STNC главная |
![]() ![]() ![]() ![]() ![]() ![]() |
Здравствуйте Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
Страницы: (2) [1] 2 ( Перейти к первому непрочитанному сообщению ) | ![]() ![]() ![]() |
nameless |
Дата 20.02.2005 - 01:18
|
Offline![]() .:Тень:. ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: -experts- Сообщений: 1745 Пользователь №: 18 Регистрация: 19.02.2005 Рейтинг: (90%) ![]() ![]() |
data segment para public "data"
message db "input 2 hex chars.$" data ends stk segment stack db 256 dup (?) stk ends code segment para public "code" assume cs:code, ds:data, ss:stk beg: mov ax,data mov ds,ax mov ah,9 mov ax,offset message int 21h xor ax,ax mov ah,1h ;функция ввода символа с клавиатуры int 21h ; прерывания на ввод mov dl,al sub dl,30h cmp dl,9h ;<<<<< jle m1 sub dl,7h m1: mov cl,4h shl dl,cl int 21h ; прерывания на ввод sub al,30h cmp al,9h ;<<<<<< jle m2 sub al,7h m2: add dl,al mov ax,4c00h int 21h ;exit the program code ends end beg Вот этод код я взял из книжки. Все компилируется и линкуется отлично, но при запуске ЕХЕшника система орет что обнаружена недопустимая конструкция. И предлагает либо завершить работу проги либо пропустить. Вобщем прога не рабочая. Собсна в чём проблема? -------------------- Мы расправим крылья
|
^rage^ |
Дата 20.02.2005 - 01:48
|
Offline Junior ![]() Профиль Группа: -users- Сообщений: 11 Пользователь №: 11 Регистрация: 18.02.2005 Рейтинг: (0%) ![]() ![]() |
вы её под какой ОС запускаете?
|
Mr.Clumsy |
Дата 20.02.2005 - 08:03
|
||
Offline Junior ![]() Профиль Группа: -users- Сообщений: 48 Пользователь №: 23 Регистрация: 20.02.2005 Рейтинг: (10%) ![]() ![]() |
В самом начале у тебя печать строки:
Это неправильно. Адрес строки должен быть в dx. Напиши: mov dx,offset message и будет тебе счастье. |
||
Guest |
Дата 21.02.2005 - 02:28
|
||
Unregistered ![]() |
2Mr.Clumsy Я знаю, но дело в том, что если написать ах - строка просто не будет напечатана, а в даном случае - завершение проги, причом стакими зверскими матюками.
ХР |
||
|
Mr.Clumsy |
Дата 21.02.2005 - 06:45
|
||||
Offline Junior ![]() Профиль Группа: -users- Сообщений: 48 Пользователь №: 23 Регистрация: 20.02.2005 Рейтинг: (10%) ![]() ![]() |
Если ты запишешь смещение строки в ax, выполнится не печать строки, какая-то другая функция. Потому и не работает прога как надо. Описание функций 21-го прерывания смотрел? |
||||
rex |
Дата 22.02.2005 - 22:34
|
||
Offline![]() Fanat ![]() ![]() ![]() Профиль Группа: -users- Сообщений: 226 Пользователь №: 30 Регистрация: 22.02.2005 Рейтинг: (30%) ![]() ![]() |
попробуй сделать вот так mov dx,offset message mov ax,dx а после этого делай вывод -------------------- Не надо меня оскорблять! Меня оскорбляли высококвалифицированные специалисты!
|
||
nameless |
Дата 23.02.2005 - 01:51
|
Offline![]() .:Тень:. ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: -experts- Сообщений: 1745 Пользователь №: 18 Регистрация: 19.02.2005 Рейтинг: (90%) ![]() ![]() |
Точно - всё работает. А где можна детальнее почитать про функции прерываний? И какую литературу посоветуете читать по асемблеру? Какую читали вы?
-------------------- Мы расправим крылья
|
Mr.Clumsy |
Дата 23.02.2005 - 07:49
|
||
Offline Junior ![]() Профиль Группа: -users- Сообщений: 48 Пользователь №: 23 Регистрация: 20.02.2005 Рейтинг: (10%) ![]() ![]() |
Я начинал учить асм по древним-древним книгам. Сейчас, насколько я в курсе, Зубков неплох. ![]() Описание прерываний. У меня есть отличное описание в электронном виде на английском языке. Если интересует, могу выложить. Архив занимает 157КБ. |
||
nameless |
Дата 25.02.2005 - 01:05
|
Offline![]() .:Тень:. ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: -experts- Сообщений: 1745 Пользователь №: 18 Регистрация: 19.02.2005 Рейтинг: (90%) ![]() ![]() |
Интересует. Думаю и не только меня. Обязательно выложи.
-------------------- Мы расправим крылья
|
nameless |
Дата 28.02.2005 - 21:28
|
Offline![]() .:Тень:. ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: -experts- Сообщений: 1745 Пользователь №: 18 Регистрация: 19.02.2005 Рейтинг: (90%) ![]() ![]() |
Ище некоторые непонятки:
В чем будут различия между результатами выполнения таких команд: xor ax,ax и mov ax,0 ? -------------------------------- Почему после: ... t db 'suxx!!!$' ... lea dx,t xor dx,dx ... mov ah,9h int 21h ... Выводится suxx!!!, ведь <xor dx,dx> - ето же "обнуление"??? -------------------------------- Есть ткая штука: mov dx,1 add dx,30 Как зделать вывод? ------------------------------- Когда мы делаем mov dx,1 то что у нас будет в dx? Тоесть какой вид будет иметь 1? И ищё, ребята, у кого есть исходники ВАШЫХ первых, не сложных (можно и сложных) программ на асемблере (желательно для тасма, но подойдут любые) - залейте плз на мыло vxk7m@ukr.net - буду просто безгранично благодарен. -------------------- Мы расправим крылья
|
![]() |
![]() ![]() ![]() |
Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence in /home/tutsem091/domains/security-teams.net/public_html/putslinkshere/mainlink.php on line 79 |