IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Локальная переменная в Pas, доступ к ней
Local
сообщение 12.05.2004 16:45
Сообщение #1


Гость






Привет!!


Procedure Pr(Str : String);
 begin
    Str:=Str+'$';
   asm
      mov ax,seg(@Data)
      mov ds,ax
      xor ax,ax      
      mov ah,9
      mov dx,offset Str
      int 21h
   end;
 end;
BEGIN
Pr('Hello');
 asm
   mov ah,0
   int 16h
 end;
End;


Вот объясните почему Я промахиваюсь при вызове локальной перменной в
процедуре с параметрами sad.gif
заранее спасибо
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Local
сообщение 12.05.2004 19:57
Сообщение #2


Гость






Цитата(Dark @ 12.05.04 17:00)
Все очень просто, твоя строка хранится встеке, а переменная @Data хранит Data сегмент паскалевской проги(заметь, не ПРОЦЕДУРЫ!)

Большая просьба - востанавливать DS, а то иначе ты изменяешь адрес расположения данных ВСЕЙ программы!!!!

1/@data хранит сегмент начала данных или точку входа в программу huh.gif
наверно сегмент данных потомучто к глобальным доступ беспромблем

2/остается непонятно почему нужно сохрянять в стеке DS и почему
теперь не настаивается сегмент данных DS на начало сегмента
тоесть через SS

3/можно по подробнее а то никак не ухвачу мысль
ведь в стек можно положить не одну переменную


4/а-а-а- стоп кажись понял
DS настраивается на начало стека ведь SS это сегмент стека
т.е.
5/lea dx,Str это мы по стекку гуляем
я правильно понял или нет


P/S/ киньте меня куданить где об этом пишеть
я имею ввиду использование ASM внутри PASCAL
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 24.06.2025 18:45
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"