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

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

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

 
 Ответить  Открыть новую тему 
> Кол-во строк окружения
сообщение
Сообщение #1


Гость






Как реализовать паскалевскую функцию EnvCount() на ассемлере.Где расположено количество строк окружения???????????
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Цитата(НеКто @ 11.02.2007 7:42) *
Где расположено количество строк окружения???????????
Оно вычисляется:
program AsmEnvCount;

function EnvCount: Integer; assembler;
asm
mov ah,62h
int 21h
mov es,bx
mov es,es:[2Ch]
xor di,di
xor bx,bx
xor ax,ax
@@1:
mov cx,-1
repne scasb
inc cx
inc cx
jcxz @@2
inc bx
jmp @@1
@@2:
mov ax,bx
end;

begin
Writeln(EnvCount);
end.



--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Короче я понял,что оно ни где не расположено...его считать надо....
непонятно что такое "repne scasb"???????????
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Область переменных окружения в среде DOS расположена по адресу <env_seg>:0, где значение <env_seg> - адрес блока переменных среды - хранится в PSP (префиксе программного сегмента) по смещению 2Ch. Для получения адреса самого PSP используем системный вызов ah=62h/int 21h. Переменные хранятся последовательно в виде строк "a=b" в формате ASCIIZ (последний байт - 0), последняя строка - пустая (один нулевой байт). Что такое repne scasb можно узнать из любой книги по ассемблеру x86.

Сообщение отредактировано: xds -


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






"Что такое repne scasb можно узнать из любой книги по ассемблеру x86."
А на фига вот ты мне всё это писал если на вопрос всё равно не ответил!!!!!!!!!!!!!!
НУ вы даёте ребята........
а так же можно с помощью 51h фукции прерывания 21h....адрес PSP записывается в DX
 К началу страницы 
+ Ответить 

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

 





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