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

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


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

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

Выпуск № 772
от 06.10.2004, 14:20

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 5877
Отправлено ответов: 15741
Активность: 267.8 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]

ВНИМАНИЕ!
9 октября 2004 года в 17:00 (суббота) состоится встреча экспертов и подписчиков из Москвы и Области.
С собой иметь некоторое количество денежных знаков в разумных пределах для рюмочно-закусочного заведения.
Всем желающим принять участие в данном мероприятии просьба писать администратору по адресу: adm@rusfaq.ru или сбросить СМС-сообщение на номер +7-926-535-23-31, где сообщить Ваше имя и намерение присутствовать на встрече.
Место встречи будет сообщено дополнительно в начале октября персонально каждому, кто решит принять участие в тусоffке (по почте или СМС-кой соответственно).
Приглашаются все желающие!



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

Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 132.52
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Александр Чуранов
Статус: Доверительный
Общий рейтинг: 127.9
[Подробней >>]
Василевский Александр
Статус: Доверительный
Общий рейтинг: 116.41
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 110.92
[Подробней >>]
Стас
Статус: Опытный
Общий рейтинг: 122.09
[Подробней >>]
Artemy
Статус: Опытный
Общий рейтинг: 108.3
Телефон: 8 905 549 38 66
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 118.07
[Подробней >>]
Evils_Interrupt
Статус: Начальный
Общий рейтинг: 114.28
[Подробней >>]


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

Вопрос № 5858. Разъясните, пожалуйста, использование директивы dt, и при чем здесь FPU.... (ответов: 3)
Вопрос № 5859. Здравствуйте Эксперты. Уже задовал вопрос в рассылку по C++ но не получил ответа. Подскажите какие в... (ответов: 3)
Вопрос № 5860. Вопрос № 5844 I need to write an assembly-language program (32!BIT! code) that will do the followin... (ответов: 1)
Вопрос № 5862. здравствуйте уважаемые эксперты !!! вопрос следующий как запустить экзэшник с программы асм сама про... (ответов: 2)
Вопрос № 5864. Я скачал с сайта Kalashnikoff.ru всё необходимое для обучения программированию на Ассемблере. Но про... (ответов: 2)
Вопрос № 5865. Здравствуйте! Кто подскажет, как мне проверить правильность моих программ, написанных для МП580? Ест... (ответов: 1)
Вопрос № 5866. Здравствуйте! Не подскажите ли как сделать функцию которая бы вычисляла цилиндр, головку и сектор, з... (ответов: 2)
Вопрос № 5867. Есть два окна - listbox и edit. Как сделать так, чтобы при вводе текста в edit, в listbox'е искалась... (ответов: 1)
Вопрос № 5868. Здравствуйте, уважаемые эксперты. Подскажите, пожалуйста, в чем моя ошибка? Я хочу с помощью моей пр... (ответов: 1)

Вопросов: 9, ответов: 16


 Вопрос № 5858

Разъясните, пожалуйста, использование директивы dt, и при чем здесь FPU.



Вопрос отправлен: 25.09.2004, 20:37
Отправитель: Сергей

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

Отвечает Евгений Иванов

Приветствую Вас, Сергей!
DT Define ten-byte unit Directive
[name] DT expression [, expression ]
Allocates a tbyte (10 bytes) of storage. name is the symbol you'll
subsequently use to refer to the data.
expression can be
- a ? (question mark)
- a duplicated expression (DUP)
- a constant expression using 80-bit arithmetic
- a relative expression or address that requires 16 bits
or fewer (32 bits or fewer if 80386+ selected)
- an 80-bit temporary real formatted floating-point number
- a string of up to 10 bytes in length, using standard quoted
string format
- a packed decimal constant expression that has a value between 0
and 99,999,999,999,999,999,999
Examples: t1 DT 1.0E30 ; 1.0 * 10^30
t2 DT 123456789abcdef01234r ; R eal number (hex)
t3 DT 1234 ; BCD format
t4 DT 1234d ; Decimal
Note: Binary Coded Decimal format is the default for the DT
directive.
The .MSFLOAT directive is not supported by Turbo Assembler.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 26.09.2004, 07:19
Отправитель: Евгений Иванов


Отвечает Александр Чуранов

Приветствую Вас, Сергей!
dt задаёт 80-битную переменную с плавающей точкой, причём используется формат, принятый в FPU процессоров Intel. Это значит, что значение, заданное таким образом во время компиляции можно будет без проблем "скормить" командам этого FPU. Например:

fld x
x dt 3.56489



Ответ отправлен: 27.09.2004, 00:37
Отправитель: Александр Чуранов


Отвечает Василевский Александр

Приветствую Вас, Сергей!
Директива DT определяет переменную, размером в 10 байтов. Числа такой длинны используются внутри FPU и называются "временными вещественными числами". Они позволяют хранить числа в диапазоне от 3.4E-4932 до 1.1E4932 и точность порядка 10 десятичных цифр.


Ответ отправлен: 29.09.2004, 10:16
Отправитель: Василевский Александр


 Вопрос № 5859

Здравствуйте Эксперты.
Уже задовал вопрос в рассылку по C++ но не получил ответа. Подскажите какие величины хранятся в wav файле в облости данных(амлитуда или еще чего). И размерность величины если файл 16 битный моно частота дискретизации 44100.
Извеняюсь за оффтопик но рылся в нете 3 дня ничего путнего не нашел.



Вопрос отправлен: 26.09.2004, 19:31
Отправитель: Ilu

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

Отвечает Александр Чуранов

Приветствую Вас, Ilu!
Хреново ты рылся. http://scomp.narod.ru/algor/simwave/wave.htm - это одна из первых ссылок, которые дал яндекс по запросу "описание формата wav". Так что не парь мозги.


Ответ отправлен: 27.09.2004, 00:19
Отправитель: Александр Чуранов


Отвечает ASMодей

Приветствую Вас, Ilu!
Насколько я помню, величины там хранятся условные, отображающие уровень сигнала звуковой карты в текущий момент времени.

Ответ отправлен: 27.09.2004, 07:01
Отправитель: ASMодей


Отвечает Евгений Иванов

Доброе время суток, Ilu!
при 16 бит разрешения там хранится знаковое значение амплитуды.
от 0 до 32767 - положительное значение,
от -1 до -32768 - отрицательное значение.
при 8 бит разрешения хранится беззнаково.
то есть, 0звуковое - это значение 128.
standard Windows PCM format: 8-bit samples are unsigned, 16-bit samples are signed, 32-bit floating-point samples range from -1 to 1 (not clipped, so can actually be outside this range).
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 29.09.2004, 00:25
Отправитель: Евгений Иванов


 Вопрос № 5860

Вопрос № 5844
I need to write an assembly-language program (32!BIT! code) that will do the following:
1st: read 20 numbers !!FROM KEYBOARD INPUT!! (some positive, some negative)
,while the numbers are being read, compute a running sum of the negative ones, print out that sum, print out the line, "That is A RESULT"
THIS IS MY PROBLEM TO WRITE THAT CODE
PROBABLY FOR YOU AS FOR EXPERT IT\'S NOT A PROBLEM BUT FOR ME IT IS BECAUSE I JUST STARTED TO WRITE ON ASSEMBLER LANGUAGE
Zaranee Spasibo Evgenii
--------------------------------------------------------------------------------
Вопрос отправлен: 17.09.2004, 08:18
Отправитель: Evgenii
[Следующий вопрос >>] [Список вопросов]
--------------------------------------------------------------------------------
Отвечает Алексей
Приветствую Вас, Evgenii!
Из того что понял я: тебе нужна программа в коде IA-32... это можно трактовать двояко. Далее программа должна считать из неоткуда 20 чисел и посчитать сумму отрицательных чисел и вывести строку. Ты так же не можешь использовать Сишный код из-за каких-то (непонятных для меня) приколов с компиляторами. ЭТО ТО, ЧТО ПОНЯЛ Я.
----
Всем этим я хотел сказать, что не совсем понятно, какая тебе необходима программа?
--------------------------------------------------------------------------------
Ответ отправлен: 17.09.2004, 10:44
Отправитель: Алексей
--------------------------------------------------------------------------------
Отвечает Стас
Приветствую Вас, Evgenii!
So, write it!
Where the question?
--------------------------------------------------------------------------------
Ответ отправлен: 17.09.2004, 20:53
Отправитель: Стас
--------------------------------------------------------------------------------



Вопрос отправлен: 27.09.2004, 10:44
Отправитель: Jenya (welcome_to_m@mail.ru)

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

Отвечает Стас

Приветствую Вас, Jenya!
Здесь не пишут программы за кого-то, а отвечают на конкретные вопросы, возникшие при написании проги.
Чтобы не засорять рассылку давай по email помогу написать.

Ответ отправлен: 30.09.2004, 20:55
Отправитель: Стас


 Вопрос № 5862

здравствуйте уважаемые эксперты !!!
вопрос следующий
как запустить экзэшник с программы асм сама программа на асме выполнена в ком файле
спасибо



Вопрос отправлен: 28.09.2004, 10:36
Отправитель: ANDRE

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

Отвечает Artemy

Доброе время суток, ANDRE!
INT 21 - DOS 2+
AH = 4Bh
AL = subfunction
00h load and execute program
01h load but do not execute (internal)
03h load overlay; do not create PSP
04h called by MSC spawn(P_NOWAIT,...) when running DOS 4.x.
returns unsuccessfully under DOS 4.0 (but may be successful
in the original European OEM MSDOS 4.0, which has limited
multitasking built in)
DS:DX -> ASCIZ filename
ES:BX -> parameter block (see below)
Return: CF set on error
AX = error code (01h,02h,05h,08h,0Ah,0Bh) (see AH=59h)
CF clear if successful
if subfunction 01h, process ID set to new program's PSP; get with
INT 21/AH=62h
Notes: DOS 2.x destroys all registers, including SS:SP

Ответ отправлен: 28.09.2004, 16:11
Отправитель: Artemy


Отвечает --- Нет данных ---

Добрый день, ANDRE!
Есть такая функция в сервисе DOS int 21h:
Вход:
AH = 4bH
DS:DX - адрес строки ASCIIZ с именем файла, содержащего программу
ES:BX - адрес EPB (EXEC Parameter Block - блока параметров EXEC)
AL = 0 - Загрузить и выполнить
Выход:
AX - код ошибки если CF установлен
Описание: Предоставляет средства одной программе (родителю) вызвать другую
программу (ребенка), которая по завершению возвратит управление
родителю.
DS:DX указывает на строку ASCIIZ в форме: "d:путьимяфайла",0.
Если диск или путь опущены, они подразумеваются по умолчанию.
ES:BX указывает на блок памяти, подготовленный как EPB, формат
которого зависит от запрошенной подфункции в AL.
AL = 0 EXEC: Так как родительская программа первоначально получает всю доступную
память в свое распоряжение, вы должны освободить часть памяти через
функцию 4aH до вызова EXEC (AL=0). Обычная последовательность:
1. Вызовите функцию 4 aH с ES=сегменту PSP и BX=минимальному объему
памяти, требуемой вашей программе (в параграфах).
2. Подготовьте строку ASCIIZ с именем вызываемого программного фай-
ла и установите DS:DX на первый символ этой строки.
3. Подготовьте Блок Параметров EXEC со всеми необходимыми полями.
4. Сохраните текущие значения SS, SP, DS, ES и DTA в переменных,
адресуемых через регистр CS (CS - это единственная точка для
ссылок после того, как EXEC вернет управление от ребенка).
5. Выдайте вызов EXEC с AL=0.
6. Восстановите локальные значения SS и SP.
7. Проверьте флаг CF, чтобы узнать, не было ли ошибки при EXEC.
8. Восстановите DS, ES и локальную DTA, если необходимо.
9. Проверьте код выхода через функцию 4dH WAIT (если надо).
Удачи

Ответ отправлен: 29.09.2004, 13:15
Отправитель: --- Нет данных ---


 Вопрос № 5864

Я скачал с сайта Kalashnikoff.ru всё необходимое для обучения программированию на Ассемблере. Но прогу Masm v.6.12 Запустить не могу.Помогите пожаллста!Может я её устанавливаю не так...



Вопрос отправлен: 30.09.2004, 10:27
Отправитель: Satanium

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

Отвечает _vt

Здравствуйте, Satanium!
Не забивай голову глупостями, и учи С! :)
Что у тебя "не так"? Командной строкой пользоваться умеешь?
* Origin : In Gates we trust !!! :)


Ответ отправлен: 03.10.2004, 13:26
Отправитель: _vt


Отвечает Evils_Interrupt

Доброе время суток, Satanium!
Ты хочешь использовать v6.12 я бы предложил использовать v 6.11 или v 6.13 так как они идут в комплекте с книгой Кип Ирвинга на диске.
Найти в интернете их нетак сложно так как не являются варезом. Насколько мне известно в книге так было сказано.
удачи в изучении

Ответ отправлен: 30.09.2004, 11:47
Отправитель: Evils_Interrupt


 Вопрос № 5865

Здравствуйте!
Кто подскажет, как мне проверить правильность моих программ, написанных для МП580? Есть ли эмуляторы или еще что-то?



Вопрос отправлен: 01.10.2004, 05:33
Отправитель: ILYA

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

Отвечает Евгений Иванов

Добрый день, ILYA!
конечно есть, www.gg.ru
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 01.10.2004, 13:47
Отправитель: Евгений Иванов


 Вопрос № 5866

Здравствуйте!
Не подскажите ли как сделать функцию которая бы вычисляла цилиндр, головку и сектор, зная только абсолютный сектор.
1. Пожалуйста, описания поподробнее...
2. Это для загузчика на дискете...



Вопрос отправлен: 01.10.2004, 07:52
Отправитель: Red Bear (poligonpc@aspol.ru)

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

Отвечает --- Нет данных ---

Добрый день, Red Bear!
Преобразование из CHS в LBA:
LBA = ((cylinder * heads_per_cylinder + heads ) * sectors_per_track)+ sector – 1
Преобразование из LBA в CHS:
C = LBA / (heads_per_cylinder * sectors_per_track)
temp = LBA % (heads_per_cylinder * sectors_per_track)
H= temp / sectors_per_track
S = temp % sectors_per_track + 1

Ответ отправлен: 01.10.2004, 10:17
Отправитель: --- Нет данных ---


Отвечает Евгений Иванов

Приветствую Вас, Red Bear!
http://superforest.narod.ru/add/disk.rar
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 01.10.2004, 13:47
Отправитель: Евгений Иванов


 Вопрос № 5867

Есть два окна - listbox и edit. Как сделать так, чтобы при вводе текста в edit, в listbox'е искалась строка сходная по первым нескольким символам с вводимой стокой (как в поиске в *.hlp файлах)?



Вопрос отправлен: 01.10.2004, 11:35
Отправитель: Serega

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

Отвечает Василевский Александр

Доброе время суток, Serega!
Это сделать очень просто. Сперва, при помощи сообщения EM_GETLINE прочитать из edit введённую строку. А затем, при помощи сообщения LB_SELECTSTRING заставить listbox выбрать нужную строку.
Определить момент, когда в строка в edit изменилась, можно обработав сообщение WM_COMMAND (подсообщение EN_CHANGE).


Ответ отправлен: 01.10.2004, 12:05
Отправитель: Василевский Александр


 Вопрос № 5868

Здравствуйте, уважаемые эксперты.
Подскажите, пожалуйста, в чем моя ошибка?
Я хочу с помощью моей программы открыть доступ к дисковому ресурсу на моем компьютере. Делаю это следующим образом в masm32:
.DATA
wst_1 db 'DW', 0
wst_2 db 'C:\', 0
wst_3 db "SVRAPI.DLL", 0
wst_4 db 'NetShareAdd', 0
.DATA ?
WaitTime dd ?
ShareDtInfo SHARE_INFO_2 <>
.CODE
; Объявление сетевого дискового ресурса на локальном компьютере
mov ShareDtInfo.shi2_netname, OFFSET wst_1
mov ShareDtInfo.shi2_type, STYPE_DISKTREE
mov ShareDtInfo.shi2_remark, 0
mov ShareDtInfo.shi2_permissions, ACCESS_PERM
mov ShareDtInfo.shi2_max_uses, -1
mov ShareDtInfo.shi2_current_uses, 0
mov ShareDtInfo.shi2_path, OFFSET wst_2
mov ShareDtInfo.shi2_passwd, 0
; Загрузка библиотеки
invoke LoadLibrary, ADDR wst_3
cmp eax, 0
je ERROR
; Загрузка адреса функции "NetShareAdd"
invoke GetProcAddress, eax, ADDR wst_4
cmp eax, 0
je ERROR
mov WaitTime, eax
; Пытаюсь непосредственно объявить ресурс:
push 0
push OFFSET ShareDtInfo
push 2
push 0
call [WaitTime]
************ А в этом месте сообщается ошибка eax=84Bh ?????????
В справочнике написано что "wst_1" и "wst_2" в "Unicode", а как это я не знаю, но ... может и не в этом дело ...
Вопрос: Как правильно объявить дисковый ресурс из программы?
Заранее благодарю за ответы, спасибо.



Вопрос отправлен: 01.10.2004, 19:39
Отправитель: Коля (niknik@tula.net)

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

Отвечает _vt

Здравствуйте, Коля!
Пользуйся нормальным справочником, т.е. MSDN. Там и пример есть на Си
#define UNICODE
#include <windows.h>
#include <stdio.h>
#include <lm.h>
void wmain( int argc, TCHAR *argv[ ])
{
NET_API_STATUS res;
SHARE_INFO_2 p;
DWORD parm_err = 0;
if(argc<2)
printf("Usage: NetShareAdd server\n");
else
{
//
// Fill in the SHARE_INFO_2 structure.
//
p.shi2_netname = TEXT("TESTSHARE");
p.shi2_type = STYPE_DISKTREE; // disk drive
p.shi2_remark = TEXT("TESTSHARE to test NetShareAdd");
p.shi2_permissions = 0;
p.shi2_max_uses = 4;
p.shi2_current_uses = 0;
p.shi2_path = TEXT("C:\\");
p.shi2_passwd = NULL; // no password
//
// Call the NetShareAdd function,
// specifying level 2.
//
res=NetShareAdd(argv[1], 2, (LPBYTE) &p, &parm_err);
//
// If the call succeeds, inform the user.
//
if(res==0)
printf("Share created.\n");

// Otherwise, print an error,
// and identify the parameter in error.
//
else
printf("Error: %u\tparmerr=%u\n", res, parm_err);
}
return;
}

В комплекте masm32 я lm.inc не нашел, значит бери lm.h от вижуалстудии и переводи на асм, раз тебе нужен именно асм.
* Origin : In Gates we trust !!! :)


Ответ отправлен: 03.10.2004, 13:03
Отправитель: _vt



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (25)
C / C++ (15)
Perl (6)
Builder / Delphi (15)
Pascal (19)
Basic / VBA (8)
Java / JavaScript (6)
PHP (17)
Криптография (8)
WinAPI (13)
Радиоэлектроника (16)
Пользователю
Windows 95/98/Me (44)
Windows NT/2000/XP (64)
"Железо" (37)
Поиск информации (21)
Администратору
Windows NT/2000/XP (42)
Linux / Unix (17)
Юристу
Гражданское право (8)
Семейное право (5)
Трудовое право (7)
КоАП (5)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


hotlog_js="1.0";hotlog_d=document; hotlog_n=navigator;hotlog_rn=Math.random(); hotlog_n_n=(hotlog_n.appName.substring(0,3)=="Mic")?0:1; hotlog_r=""+hotlog_rn+"&s=25513&im=127&r="+escape(hotlog_d.referrer)+"&pg="+ escape(window.location.href); hotlog_d.cookie="hotlog=1"; hotlog_r+="&c="+(hotlog_d.cookie?"Y":"N"); hotlog_d.cookie="hotlog=1; expires=Thu, 01-Jan-70 00:00:01 GMT" hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2";hotlog_s=screen; hotlog_r+="&wh="+hotlog_s.width+'x'+hotlog_s.height+"&px="+((hotlog_n_n==0)? hotlog_s.colorDepth:hotlog_s.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; hotlog_d.write("HotLog") Яндекс цитирования
© 2001-2004 Россия, Москва. Идея, дизайн, программирование: Калашников О.А. ICQ: 68951340
При перепечатке материалов ссылка на данный сайт обязательна!

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Отписаться

В избранное