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

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

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

> Локальная переменная в Pas, доступ к ней
сообщение
Сообщение #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
заранее спасибо
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Можно так:
program Hello;

procedure Print(const s: String);
var
 ts: String;
begin
 ts := s + '$';
 asm
   push ds
   mov ax,ss
   mov ds,ax
   lea dx,ts[1]
   mov ah,9
   int 21h
   pop ds
 end;
end;

begin
 Print('Hello, World!'#13#10);
 asm
   xor ax,ax
   int 16h
 end;
end.


...а можно и так:
program Hello;

procedure Print(const s: String); assembler;
asm
 push ds
 lds dx,s
 inc dx
 mov ah,9
 int 21h
 pop ds
end;

begin
 Print('Hello, World!'#13#10'$');
 asm
   xor ax,ax
   int 16h
 end;
end.
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 2.05.2024 15:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name