A1exSun, не обязательно же все точка в точку копировать, и уж совсем ни к чему в твоем случае модель ОСИ важна сама идея передачи маркера. Там внизу ссылка на ПДФ есть, где все красиво нарисовано...
» Assembler
MERCURY127
Да я и не собираюсь ничего передирать, мне интересно только что за маркер в 3 байта и как он идет.
В тех трех байтах какой-то id получателя, размер данных и рядом сами данные? Один такой маркер бегает по кругу, или множество, для каждого сообщения свой?
Типа получила машина данные, проверила ей ли они направлены, если да, забираем, иначе шлем дальше. Так?
Как выглядит сама сеть таким способом я представляю.
Да я и не собираюсь ничего передирать, мне интересно только что за маркер в 3 байта и как он идет.
В тех трех байтах какой-то id получателя, размер данных и рядом сами данные? Один такой маркер бегает по кругу, или множество, для каждого сообщения свой?
Типа получила машина данные, проверила ей ли они направлены, если да, забираем, иначе шлем дальше. Так?
Как выглядит сама сеть таким способом я представляю.
A1exSun
Я, вот, молча слежу за всем этим спектаклем. Молча, потому что слов не хватает. Не будешь же в постах ХА-ХА писать. Но наблюдать, с каким упорством ты бьешься головой о железобетонную стенку... Учитывая, что стенка заведомо крепче твоей головы. Вообщем, масса приятных впечатлений.
Все штука в том, что пытаешься выполнить нечто, выполнение чего совершенно бессмысленно. Ты знаешь, что ведя машину, можно остановиться где-то на обочине дороги, выйти и отлить. Потом сесть и поехать дальше. Так вот, вооруженный этим знанием, ты пытаешься то же самое воплотить, управляя самолетом на высоте 10 км. И почему-то не выходит...
Цитата:
И вот открылся он - смысл... А то я понять не мог, зачем ты хочешь убедиться, что твоя машина AT. Сомнения что ли в этом были?..
Вообщем, если позарез нужон real mode DOS, то без проца, работающего в real mode, и без этого самого DOS (учти, даже Win9x тебе не подойдет, ибо protected mode), тебе никак не обойтись. Либо грузи DOSину (твой i7-2600K умеет real mode, как ни странно), либо юзай виртуалку. Воть как-то какЪ.
PS: Windows (ну или Linux на худой конец) и TCP/IPv4 - не наш путь. Наш - DOS & Token Ring!
Я, вот, молча слежу за всем этим спектаклем. Молча, потому что слов не хватает. Не будешь же в постах ХА-ХА писать. Но наблюдать, с каким упорством ты бьешься головой о железобетонную стенку... Учитывая, что стенка заведомо крепче твоей головы. Вообщем, масса приятных впечатлений.
Все штука в том, что пытаешься выполнить нечто, выполнение чего совершенно бессмысленно. Ты знаешь, что ведя машину, можно остановиться где-то на обочине дороги, выйти и отлить. Потом сесть и поехать дальше. Так вот, вооруженный этим знанием, ты пытаешься то же самое воплотить, управляя самолетом на высоте 10 км. И почему-то не выходит...
Цитата:
Потому что лабораторная есть такая и лень писать в Turbo C в виртуалке.
И вот открылся он - смысл... А то я понять не мог, зачем ты хочешь убедиться, что твоя машина AT. Сомнения что ли в этом были?..
Вообщем, если позарез нужон real mode DOS, то без проца, работающего в real mode, и без этого самого DOS (учти, даже Win9x тебе не подойдет, ибо protected mode), тебе никак не обойтись. Либо грузи DOSину (твой i7-2600K умеет real mode, как ни странно), либо юзай виртуалку. Воть как-то какЪ.
PS: Windows (ну или Linux на худой конец) и TCP/IPv4 - не наш путь. Наш - DOS & Token Ring!
ItsJustMe
Мне нечего сказать.
Цитата:
Не я выбираю.
Мне нечего сказать.
Цитата:
PS: Windows (ну или Linux на худой конец) и TCP/IPv4 - не наш путь. Наш - DOS & Token Ring!
Не я выбираю.
A1exSun
Цитата:
Цитата:
В виртуалке всё было бы гораздо проще.
Да и знания по виртуалке не пропадут точно.
Цитата:
Не я выбираю.Да ладно?
Цитата:
лень писать в Turbo C в виртуалке.
В виртуалке всё было бы гораздо проще.
Да и знания по виртуалке не пропадут точно.
KChernov
не я выбираю - Windows & TCP/IPv4 или DOS & Token Ring
не я выбираю - Windows & TCP/IPv4 или DOS & Token Ring
фигня какая-то...
встроенный ассемблер в С (из-под VS2008) не понимает размер real8...
так и пришлось всё перебивать на qword
я что-то не понимаю или что-то не так делаю?
встроенный ассемблер в С (из-под VS2008) не понимает размер real8...
так и пришлось всё перебивать на qword
я что-то не понимаю или что-то не так делаю?
akaGM
_http://msdn.microsoft.com/en-us/library/6sfyyxt5(v=VS.90).aspx
Судя по ссылке, должен понимать.
_http://msdn.microsoft.com/en-us/library/6sfyyxt5(v=VS.90).aspx
Судя по ссылке, должен понимать.
это ml понимает (и твоя ссыла на него), тут никаких вопросов,
а вот
_asm fld real8 ptr [esp+4];
в cl версии 15.x.x
отсос...
а вот
_asm fld real8 ptr [esp+4];
в cl версии 15.x.x
отсос...
А макрос определить #define real8 qword не прокатывает?
MERCURY127
да всё прокатывает, тем более что я уже "просёрчил энд реплейсил", жёстко перебил всё на фиг, короче...
просто непонятки остались: что, выходит асм-вставки компилятся в cl отдельным блоком и этот блок -- кастрированный masm? зачем?
и главный вопрос: не я придумал эту проблему, ведь под какой-то Си это писалось...
ага
far в директории ../bin нашёл real8 только в ml.exe
да всё прокатывает, тем более что я уже "просёрчил энд реплейсил", жёстко перебил всё на фиг, короче...
просто непонятки остались: что, выходит асм-вставки компилятся в cl отдельным блоком и этот блок -- кастрированный masm? зачем?
и главный вопрос: не я придумал эту проблему, ведь под какой-то Си это писалось...
ага
far в директории ../bin нашёл real8 только в ml.exe
Как заставить FPU корректно выводить результат сложения двух чисел?
Скажем, есть два 80-битных числа: 0.1 и 2.0. Если каждое выводить по отдельности, то все работает хорошо, а если их сложить и вывести результат, получится что-то вроде 2.099999999999999999913263826201... . Я понимаю, что представить 0.1 конечным числом в двоичной системе нельзя, но почему тогда FPU нормально выводит его в первом случае?
Скажем, есть два 80-битных числа: 0.1 и 2.0. Если каждое выводить по отдельности, то все работает хорошо, а если их сложить и вывести результат, получится что-то вроде 2.099999999999999999913263826201... . Я понимаю, что представить 0.1 конечным числом в двоичной системе нельзя, но почему тогда FPU нормально выводит его в первом случае?
в первом случае ты выводишь само число, а во втором -- _результат операции_
нормальная точность для 80-битной плавающей точки, 19 цифр, ничего не поделаешь...
Цитата:
нормальная точность для 80-битной плавающей точки, 19 цифр, ничего не поделаешь...
Цитата:
Как заставить FPU корректно выводить результат сложения двух чисел?обрезай при выводе до 7-9 значащих цифр...
Цитата:
обрезай при выводе до 7-9 значащих цифр...
А каким образом? Если мне нужно округлить число до десятых, я могу умножить его на 10^1, затем получившееся число округлить до целого, затем выводить как целое, но с учетом положения точки. Но часто такой способ дает неправильные результаты. Неужели придется писать округление самому?
G36
x=2.099999999999999999913263826201F
printf( "%.18L", x)
2.1000000000000000000
Добавлено:
или тебе все-все-все надо руками делать??? так это дело проблемное библиотеки правильного вывода плавающей запятой занимают тысячи строк на асме...
x=2.099999999999999999913263826201F
printf( "%.18L", x)
2.1000000000000000000
Добавлено:
или тебе все-все-все надо руками делать??? так это дело проблемное библиотеки правильного вывода плавающей запятой занимают тысячи строк на асме...
G36
а что тебя смущает? ну выводится так и что?
тем более весь "красивый" вывод (гуй) обычно отдают на верхний уровень, глупо это делать на асме...
а что тебя смущает? ну выводится так и что?
тем более весь "красивый" вывод (гуй) обычно отдают на верхний уровень, глупо это делать на асме...
Цитата:
x=2.099999999999999999913263826201F
printf( "%.18L", x)
2.1000000000000000000
С помощью 16-битного TASM это можно сделать? Как через него подключить библиотеки?
G36
Цитата:
а как (каким способом) ты это до сих пор выводил, с помощью ТАСМа?
Цитата:
Если каждое выводить по отдельности, то все работает хорошо, а если их сложить и вывести результат, получится что-то вроде 2.099999999999999999913263826201
а как (каким способом) ты это до сих пор выводил, с помощью ТАСМа?
Цитата:
а как (каким способом) ты это до сих пор выводил, с помощью ТАСМа?
0. Отделяю дробную часть от целой с помощью fprem.
1. Получаю цифры, заталкиваю в стек, затем вывожу. Это целая часть и ней проблем нет.
2. Вывожу точку. Проблем нет.
3. Меняю в слове управления дефолтное округление на округление к нулю и использую следующий цикл для вывода дробной части:
Код: fract:
fimul radix
fld st(0)
frndint
fsub st(1), st(0) <-- проблема
fistp digit
mov ax, digit
mov ah, 2
or al, 30h
mov dl, al
int 21h
ftst
fstsw ax
sahf
loopne fract
G36, не надо изобретать велосипед http://forum.sources.ru/index.php?showtopic=275156
ну и для общего образования... http://ru.wikipedia.org/wiki/Числа_с_плавающей_запятой
ну и для общего образования... http://ru.wikipedia.org/wiki/Числа_с_плавающей_запятой
MERCURY127
Все способы выводят так же плохо. Числа с плавающей точкой знаю.
Все способы выводят так же плохо. Числа с плавающей точкой знаю.
G36
ну оформи свой асм как функу и зови её в Сях для printf()
не подойдёт?
ну оформи свой асм как функу и зови её в Сях для printf()
не подойдёт?
akaGM
Не-а, не подойдет
В общем-то я уже решил для явно заданной точности. Пока что этого достаточно, спасибо всем.
Не-а, не подойдет
В общем-то я уже решил для явно заданной точности. Пока что этого достаточно, спасибо всем.
G36
ну и славно...
кстати, ты только цифры выводишь?
or al, 30h
ну и славно...
кстати, ты только цифры выводишь?
or al, 30h
Не знаю, как в ТАСМе, а в МАСМе я один раз линковал Си РТЛ, как раз для этой цели... Но... Разбирать порядок заталкивания данных в стек пришлось опытным путем, а само заталкивание и очистку надо ручками делать...
Добавлено:
И весит эта ртл 12 кб
Добавлено:
И весит эта ртл 12 кб
тут на самом деле неважно какой АСМ, важен язык и библиотеки высокого уровня...
например, к дельфям ты заимучишься линковаться...
например, к дельфям ты заимучишься линковаться...
Да да но то был дос, и естественно, к масму я линковал мс си ртл - у мс, слава богу, перекрестный линкаж между разными своими языками отлажен неплохо
Цитата:
Разбирать порядок заталкивания данных в стек пришлось опытным путем, а само заталкивание и очистку надо ручками делать...
к масму я линковал мс си ртл
а у меня был M$ "Language Reference and Mixed-Language Programmer's Guide"
:D
DMA - контроллер, как микросхема. Его назначение. Производительность ПК.
Добавлено:
В ассемблере ничего не понимаю может кто нибудь поможет разобраться
Добавлено:
DMA - контроллер, как микросхема. Его назначение. Производительность ПК . Алгоритм решения задачи;
. Расчетная часть в виде одного или нескольких примеров решения задачи; как правило, это написание программы для персонального компьютера на языке Ассемблер. В некоторых случаях допускается пользоваться связкой языка высокого уровня с языком Ассемблер, например: Си – Ассемблер или Паскаль – Ассемблер. Также допустимо выполнение в этой части графического приложения в виде схемотехнического и конструкторско-технологического материала. Программа должна сопровождаться протоколом результатов своей работы.
Добавлено:
В ассемблере ничего не понимаю может кто нибудь поможет разобраться
Добавлено:
DMA - контроллер, как микросхема. Его назначение. Производительность ПК . Алгоритм решения задачи;
. Расчетная часть в виде одного или нескольких примеров решения задачи; как правило, это написание программы для персонального компьютера на языке Ассемблер. В некоторых случаях допускается пользоваться связкой языка высокого уровня с языком Ассемблер, например: Си – Ассемблер или Паскаль – Ассемблер. Также допустимо выполнение в этой части графического приложения в виде схемотехнического и конструкторско-технологического материала. Программа должна сопровождаться протоколом результатов своей работы.
Volk870707
думаю, с такими вопросами тебе сразу сюда:
http://forum.ru-board.com/topic.cgi?forum=33&topic=2395#1
думаю, с такими вопросами тебе сразу сюда:
http://forum.ru-board.com/topic.cgi?forum=33&topic=2395#1
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
Предыдущая тема: .NET GUI компоненты
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.