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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2011, 19:19   #1
n3sh
Пользователь
 
Регистрация: 24.07.2010
Сообщений: 25
По умолчанию адрес возврата

Всем привет.Дана элементарная программка:
Код:
.model tiny
.code
org 100h
start:
call my_proc
int 20h

my_proc proc
mov ah,9h
mov dx,offset mess
int 21h
ret
my_proc endp

mess db "Hello world",'$'

end start
Вопрос в том - почему после выполнения прерывания 21h управление переходит по какому то непонятному адресу и адрес возврата в стеке(у меня должен быть 0103)меняется на какой то другой?
n3sh вне форума Ответить с цитированием
Старый 08.04.2011, 20:37   #2
Ant1971on
Пользователь
 
Регистрация: 20.07.2010
Сообщений: 52
По умолчанию

Да вроде как все нормально, у меня возвращается по 103 адресу, и строку выводит. Вы наверное в отладчике нырнули в саму досовскую процедуру вывода строки, рано или поздно оттуда вынырнете, как раз на 103 адрес
Ant1971on вне форума Ответить с цитированием
Старый 08.04.2011, 21:10   #3
n3sh
Пользователь
 
Регистрация: 24.07.2010
Сообщений: 25
По умолчанию

а еще вот такой вопрос - в данном коде почему то не работают условные переходы je и jz,при выполнении программы если ввожу "Y" выводит "It Y"(все верно),а если ввожу "X" выводит "It X""It Y".Почему так,где я ошибся?
Код:
.model tiny
.code
org 100h
start:

next_key:
mov ah,10h
int 16h
cmp al,'X'
jz lab_X
cmp al,'Y'
jz lab_Y
jmp next_key

lab_X:
mov ah,9h
mov dx,offset messX
int 21h

lab_Y:
mov ah,9h
mov dx,offset messY
int 21h

ret
messX db "It X!",'$'
messY db "It Y!",'$'
end start

Последний раз редактировалось n3sh; 08.04.2011 в 21:14.
n3sh вне форума Ответить с цитированием
Старый 08.04.2011, 21:19   #4
n3sh
Пользователь
 
Регистрация: 24.07.2010
Сообщений: 25
По умолчанию

Решил.Надо было поставить ret в метке lab_X
n3sh вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ip адрес Preidman Общие вопросы C/C++ 3 06.04.2011 17:44
Адрес Djonik Общие вопросы Delphi 2 09.05.2010 19:15
Ip адрес delphin100 Win Api 4 08.01.2008 21:55
IP адрес delphin100 Общие вопросы Delphi 8 12.12.2007 13:18
как узнать ip адрес зная mac адрес Roman Работа с сетью в Delphi 9 25.06.2007 12:39