Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 019
от 15.06.2002, 03:00

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 37
Отправлено ответов: 95
Активность: 256.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Dark_Lord
Статус: Опытный
Общий рейтинг: 118.91
Телефон: 36 30 3862503
[Подробней >>]
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 130
URL: Пристанище неодинокого программиста
[Подробней >>]
pin
Статус: Доверительный
Общий рейтинг: 157.14
[Подробней >>]
 
Dzik
Статус: Опытный
Общий рейтинг: 112.65
URL: Разработка игрушек
[Подробней >>]
Blackeye
Статус: Профессиональный
Общий рейтинг: 120.15
URL: Delphi, my programms...
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 135.91
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 36. Здравствуйте эксперты! Хочу написать процедурку, аналог write в Пасквиле, пишу, компилирую, а она мн... (ответов: 6)

Вопросов: 1, ответов: 6


 Вопрос № 36

Здравствуйте эксперты!
Хочу написать процедурку, аналог write в Пасквиле, пишу, компилирую, а она мне какой-то мусор выдает. Помогите, в чем тут дело?
С уважением, ILYA D.


Приложение:


Вопрос отправлен: 12.06.2002, 02:58
Отправитель: ILYA D.

[Следующий вопрос >>] [Список вопросов]

Отвечает Dark_Lord

Доброе время суток, ILYA D.!
Сам не знаю почему, но если создать две переменные и вызвать seg и ofs паскаля а не ассемблером, то всё ОК!

Ответ отправлен: 12.06.2002, 20:18
Отправитель: Dark_Lord


Отвечает Артём Шегеда

Добрый день, ILYA D.!
Два замечания.
1. Поскольку параметры в функцию передаются через стек, то манёвр типа
mov ax,seg str
не катит. Компилятор не знает, чему в данный момент будет равен seg str. Нужно написать так:
mov ax,ss
mov ds,ax

2. В dx нужно грузить эффективный адрес не str, а str[1]. В строке Pascal первый байт содержит длину.
To "expert" Dzik: befor You answer You shold check all variants and choose the best.

Ответ отправлен: 12.06.2002, 12:17
Отправитель: Артём Шегеда


Отвечает pin

Доброе время суток, ILYA D.!
Во первых:
push ax
push dx
push ds
.
.
.
pop ds
pop dx
pop ax
Далее: Строка должна заканчиваться "$".
Т.Е.
procedure WriteB(str:string);
begin
WriteA(Str+"$");
end;

Ответ отправлен: 12.06.2002, 15:17
Отправитель: pin


Отвечает Dzik

Добрый день, ILYA D.!
Возможно косяк в том, что ты пытаешься использовать переменную в параметрах.
Попробуй скопировать твою строку в локальную переменную


Ответ отправлен: 12.06.2002, 08:10
Отправитель: Dzik


Отвечает Blackeye

Доброе время суток, ILYA D.!
Это все потому что, string это не набор ASCII симолов. А специальный формат строки! Если хочешь выводить, то вместо str:string используй str:array[0..254] of char или просто char на твое усмотрение.

Ответ отправлен: 14.06.2002, 20:32
Отправитель: Blackeye


Отвечает Ayl

Приветствую Вас, ILYA D.!
По-моему, строки в процедуры передаются в любом случае в виде указателя (4 байта), поэтому адрес надо грузить так:
lds dx, str
Попробуй.


Ответ отправлен: 13.06.2002, 19:39
Отправитель: Ayl



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (51)
C / C++ (31)
Perl (10)
Delphi (14)
Pascal (26)
Basic / VBA (15)
Java / JavaScript (6)
PHP (7)
MySQL / MSSQL (7)
Пользователю
Windows 95/98/Me (47)
Windows NT/2000/XP (33)
"Железо" (39)
Поиск информации (20)
Администратору
Windows NT/2000/XP (15)
Linux / Unix (9)
Юристу
Гражданское право (11)
Семейное право (5)
Трудовое право (6)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное