Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler
Выпуск № 102
от 03.04.2005, 16:30
Администратор: | Калашников О.А. |
В номере: | Вопросов: 8, Ответов: 21 |
Вопрос № 18898: добрый день всем!!! у меня вопрос может кто обьяснит по поводу прерывания 15Н функция 530ЕН что это она делает или может есть ссылочка на на данный вопрос в инете ничегошеньки не нашла с Уважением Виктория...
Вопрос № 18900: У меня такой вопрос!!! Я хочу написать ОС наподобие Windows ,но не знаю как загрузить программу сделанную из под Windows. И ещё для своей ОС как сделать свой язык программирования высокого уровня!!! Буду благодарен всем тем кто ответи...
Вопрос № 18902: У меня такой вопрос!!! Я хочу написать ОС наподобие Windows ,но не знаю как загрузить программу сделанную из под Windows. И ещё для своей ОС как сделать свой язык программирования высокого уровня!!! Всем благодарен заранее!!! ...
Вопрос № 18903: Ув эксперты! Объясните,плз,я скачал MASM32,с API все нормально работает,а пытаюсь компилировать DOS`овские проги,компиллер ругается.Я уже брал пример файла ASM и у Зубкова и у Пильщикова и у Финогенова - где-то все-равно есть ошибка,даже когда пр...
Вопрос № 18921: Здравствуйте. Не могу разобраться в условии задания по ассемблеру: Составить программу для 16-разрядного процессора, реализующую следующее задание: Адрес окружения программы находится в префиксе прграммного сегмента (PSP – область, с которой ...
Вопрос № 18945: Как можно поставить пароль на *exe и *com файл. Как можно приписать свой код к файлу. Например при запуске любого exe и com файлов будет выходить окно с текстом(досовское) и при нажатии любой клавиши запустится сама прога. ...
Вопрос № 18946: Здрасвуйте! Я бы хотел узнать насчёт загрузки задач откомпилированных на языках программирования для WINDOWS!!! Вот я делаю свою ОС , чтобы она могла загружать все задачи сделанных на платформе Windows,DOS и на моей платформе ОС!!! Че...
Вопрос № 18949: А можно ли на Ассемблере сделать свой язык программирования сделать(любого уровня)?...
Вопрос № 18898 |
добрый день всем!!! у меня вопрос может кто обьяснит по поводу прерывания 15Н функция 530ЕН что это она делает или может есть ссылочка на на данный вопрос в инете ничегошеньки не нашла с Уважением Виктория |
Отправлен: 28.03.2005, 17:47 Вопрос задала: Виктория Путина (статус: 6-ой класс) Всего ответов отправлено: 5 |
Отвечает: Котиев Зураб Здравствуйте, Виктория Путина! Ralf Brown's Interrupt List(посмотри http://www-2.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html) Inp.: AX = 530Eh BX = device ID of system BIOS (0000h) CH = APM driver major version (BCD) CL = APM driver minor version (BCD) (02h for APM v1.2) Return: CF clear if successful AH = APM connection major version (BCD) AL = APM connection minor version (BCD) CF set on error AH = error code (03h,09h,0Bh) все это относится к управлению питанием(Advanced Power Management) |
Ответ отправил: Котиев Зураб (статус: 3-ий класс) Отправлен: 28.03.2005, 18:03 Оценка за ответ: 5 Комментарий оценки: merci |
Отвечает: DSota Здравствуйте, Виктория Путина! В APM (advansed power management driver) -в AWARD BIOS разрешает (включает) управление электропитанием. Приложение: |
Ответ отправил: DSota (статус: Студент) Отправлен: 28.03.2005, 18:12 Оценка за ответ: 5 Комментарий оценки: merci |
Отвечает: Boriss Здравствуйте, Виктория Путина! Почитать подробнее можно здесь: http://hdebruijn.soo.dto.tudelft.nl/newpage/interupt/out-1400.htm а где кратко, Вы уже наверно, видели :)) Сам не сразу нашел ... |
Ответ отправил: Boriss (статус: Профессор) Отправлен: 28.03.2005, 18:48 Оценка за ответ: 5 Комментарий оценки: просто нет слов прекрассно |
Отвечает: Евгений Иванов Здравствуйте, Виктория Путина! --------p-15530E----------------------------- INT 15 - Advanced Power Management v1.1+ - DRIVER VERSION AX = 530Eh BX = device ID of system BIOS (0000h) CH = APM driver major version (BCD) CL = APM driver minor version (BCD) (02h for APM v1.2) Return: CF clear if successful AH = APM connection major version (BCD) AL = APM connection minor version (BCD) CF set on error AH = error code (03h,09h,0Bh) (see #00473) SeeAlso: AX=5300h,AX=5303h Прикреплённый файл: Загрузить >> |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 28.03.2005, 22:34 Оценка за ответ: 5 Комментарий оценки: благодарю |
Отвечает: Voituk Alexander Здравствуйте, Виктория Путина! Скажи пожалуйста, где ты такую нашла? У меня есть справочник по прерываниям, но по данному вопросу заканчивается на функции 530Bh. Одно могу сказать, что вроде это относится к Advanced Power Management Specification. По крайней мере, все функции 53 этого прерывания про это. |
Ответ отправил: Voituk Alexander (статус: 6-ой класс) Отправлен: 29.03.2005, 12:39 |
Вопрос № 18900 |
У меня такой вопрос!!! Я хочу написать ОС наподобие Windows ,но не знаю как загрузить программу сделанную из под Windows. И ещё для своей ОС как сделать свой язык программирования высокого уровня!!! Буду благодарен всем тем кто ответит на этот вопрос(желательно побыстрее)!!! |
Отправлен: 28.03.2005, 18:22 Вопрос задал: newinfo2005 (статус: 1-ый класс) Всего ответов отправлено: 2 |
Отвечает: Вiктор Здравствуйте, newinfo2005! (ну и масштабные у вас задумки...) я так понял ваша ос будет крутая, тогда она должна сама загружаться при включении компьютера, как это делают виндовс и дос, и др. про код загрузки - поищите сами, можете поискать на wasm.ru если ваша ОС будет работать как программа виндовс (наподобие ДОСа), то вам следует почитать про дос, виндовс и их взаимодействие. насчёт языка программирования - если хотите свой язык- делайте его компилятор. комп работает в машинных кодах. чтобы он понимал ваш "язык программирования высокого уровня!!!" ему надо переводчик - компилятор. вообще, читайте про написание самодельных ОС. спросите у эксперта Dron, он вроде этим занимался. надеюсь я вам помог. если нет - сформулируйте вопрос по другому, может быть следует разбить его на более мелкие. всё. |
Ответ отправил: Вiктор (статус: 3-ий класс) Отправлен: 28.03.2005, 20:36 Оценка за ответ: 4 Комментарий оценки: Конечно это очень хорошая помощь , но машинные коды это уже большие проблемы!!! |
Отвечает: Стас Здравствуйте, newinfo2005! Не в обиду... Но если ты элементарный вещей не понимаешь, как ты собрался писать ОСь? Что значит "не знаю как загрузить программу сделанную из под Windows" - ни знаков припенания, ни чего - т.е. у тебя прога написана для Windows ты её хочешь запустить без виндов? Практически дохлый номер. Или ты написал загрузчик, но не знаешь как его запустить (для проверки) под виндами? (запиши на дискету - загрузись с неё, или вообще поставь виртуальную машину) -- В общем случае тебе надо либы придумывать свою файловую систему, либо брать за основу существующую, писать бут сектор (это легко). И дальше писать процедуры для работы с файлами, экраном, клавиатурой, другим оборудованием. Когда это сделаешь можно "навесить" графическую оболочку. И реализовать "интерпретатор" какого либо языка спец. для твоей ОС. Например пишешь в командной строке - print "Hello Word!", система опознает ключевое слово "print" - понимает что нужно вывести на экран, берёт параметры "Hello Word!" и выводит это на экран с помощью написаных ранее функций ОС. Ну примерно так. Написание ОС сложная задача, начни с чего нибудь попроще. |
Ответ отправил: Стас (статус: Практикант) Отправлен: 29.03.2005, 01:28 Оценка за ответ: 5 Комментарий оценки: Я ,конечно, не обижаюсь на то что ты сказал , но за идею спасибо, большое спасибо!!! |
Вопрос № 18902 |
У меня такой вопрос!!! Я хочу написать ОС наподобие Windows ,но не знаю как загрузить программу сделанную из под Windows. И ещё для своей ОС как сделать свой язык программирования высокого уровня!!! Всем благодарен заранее!!! |
Отправлен: 28.03.2005, 18:26 Вопрос задал: newinfo2005 (статус: 1-ый класс) Всего ответов отправлено: 1 |
Отвечает: Котиев Зураб Здравствуйте, newinfo2005! топай на www.reactos.org там валяются исходники windows-подобной OS. А вообще лучше писать микро- или экзо- ядерную систему а windows или linux окружение реализовывать в виде библиотек. можешь зайти на www.osdev.ru там тоже много инфы. http://www.uw-pc.com/os.html http://www.experimentalstuff.com/Technologies/ChorusOS/index.html |
Ответ отправил: Котиев Зураб (статус: 3-ий класс) Отправлен: 29.03.2005, 11:30 Оценка за ответ: 5 Комментарий оценки: Такого ответа мне ещё не давали!!! |
Вопрос № 18903 |
Ув эксперты! Объясните,плз,я скачал MASM32,с API все нормально работает,а пытаюсь компилировать DOS`овские проги,компиллер ругается.Я уже брал пример файла ASM и у Зубкова и у Пильщикова и у Финогенова - где-то все-равно есть ошибка,даже когда прога без кода,а сам скелет. Может быть для DOS`a нужен другой DOS`овский MASM?Или в чем тут дело? Спасибо заранее за содержательный ответ,очень уж хотелось бы разобраться. |
Отправлен: 28.03.2005, 18:48 Вопрос задал: Ling (статус: Посетитель) Всего ответов отправлено: 2 |
Отвечает: Вiктор Здравствуйте, Ling! TLINK, TASM - точно бывают 16- и 32-битные MASM : Microsoft (R) Macro Assembler Version 6.14.8444, Copyright (C) Microsoft Corp 1981-1997. должен вроде делать и 16, и 32-битный код. (не уверен) а вот LINK (Microsoft овский) может быть или 16, или 32-битный. в масм32 нет 16-битного линкера. там есть: Microsoft (R) Incremental Linker Version 5.12.8078, Copyright (C) Microsoft Corp 1992-1998. он точно 32-битный 16-битный LINK надо искать в пакете MASM 6.11, 6.12 или вроде того. попробуйте сделать *.СОМ программу вашим MASM-ом, может выйдет... попробуйте ещё настойки сегментов USE16, USE32 всё. (надеюсь за такой ответ мне не влепят выговор :-) |
Ответ отправил: Вiктор (статус: 3-ий класс) Отправлен: 28.03.2005, 20:50 |
Отвечает: _vt Здравствуйте, Ling! Как всегда - у меня на сайте можно найти то, что надо :) Рабочий MASM для DOS лежит тут. 269 Кб. -- * In Gates we trust! :) |
Ответ отправил: _vt (статус: Академик) Отправлен: 02.04.2005, 00:58 |
Вопрос № 18921 |
Здравствуйте. Не могу разобраться в условии задания по ассемблеру: Составить программу для 16-разрядного процессора, реализующую следующее задание: Адрес окружения программы находится в префиксе прграммного сегмента (PSP – область, с которой загружается соответствующая программа) со смещением 2Ch. Сегментный адрес PSP находится в регистрах DS и ES при старте программы. Структура среды окружения: db строка_1,0 db строка_2,0 … db строка_т,00,хх db строка_запуска_программы 0 1. Необходимо получить из PSP адрес окружения, по этому адресу в среде окружения найти строку, которая описывает путь запуска программы, выдать ее на экран и номер этой строки. 2. Выдатиьстроку с номером 5, 79. Если строки с заданным именем не существует выдать сообщение «Строка не найдена» 3. Выдать все строки содержащие символ @, в формате: Строка 5: содержимое_строки. Если строки не существует, выдать соответствующее сообщение. Помогите, кто сможет. Хотя бы советом что и как делать. Спасибо. |
Отправлен: 29.03.2005, 01:56 Вопрос задал: MMM72 (статус: Посетитель) Всего ответов отправлено: 1 |
Отвечает: DSota Здравствуйте, MMM72! 0. Ошибка небольшая (в запятых): db строка_т,0,0,хx,0 db строка_запуска_программы 0 1. Написать строку запуска: mov di,[cs:2ch] mov es,di xor di,di;es:di=адрес переменных окружения из PSP[2ch] ;ищем 2 нуля - т.к. строка запуска программы за ними xor si,si;si=номер строки, строки нумеруются от 0 xor cx,cx dec cx mov al,0 findnext: inc si;увеличим номер строки repne scasb;ищем ноль в конце cmp es:di,al jne findnext ;нашли 2 нуля, пропскаем 2 цифры (xx,0) add di,2 ;теперь в es:di - адрес строки, в si - ее номер call printnum call printasciiz ret printasciiz proc;печать строки, оканчивающейся на 0 push ds push es push di pop si pop ds jmp nxtchar addchar: int 29h nxtchar: lodsb cmp al,0 jne addchar pop ds ret endp printnum proc;печать двухзначного номера в SI mov al,13 int 29h int al,10 int 29h mov ax,si mov dl,10 div dl add ax,3030h int 29h mov al,ah int 29h mov al,' ' int 29h ret endp 2. аналогично п.1, только все время проверяется si на равенство искомой строки xor di,di;es:di=адрес переменных окружения из PSP[2ch] ;ищем 2 нуля - т.к. строка запуска программы за ними xor si,si;si=номер строки, строки нумеруются от 0 xor cx,cx dec cx mov al,0 findnext: cmp si,5;ищется 5-я строка: jne findend call printasciiz jmp nxt1 findend: inc si;увеличим номер строки repne scasb;ищем ноль в конце cmp es:di,al jne findnext nxt1: ;нашли 2 нуля, конец поиска, печатаем "строка не найдена" 3. каждую строку еще и проверяешь на присутствие в нем '@' xor di,di;es:di=адрес переменных окружения из PSP[2ch] xor bx,bx;адрес текущего символа xor si,si;si - номер страницы tst: mov ax,[es:bx] inc bx cmp ax,0;встретились 2 нуля? je seed cmp al,0;началась новая строка? jne nxtchar mov di,bx;в di-начало строки inc si;номер строки nxtchar: cmp al,'7' jne tst call printnum push si call printasciiz pop si jmp tst seed: |
Ответ отправил: DSota (статус: Студент) Отправлен: 29.03.2005, 13:05 |
Вопрос № 18945 |
Как можно поставить пароль на *exe и *com файл. Как можно приписать свой код к файлу. Например при запуске любого exe и com файлов будет выходить окно с текстом(досовское) и при нажатии любой клавиши запустится сама прога. |
Отправлен: 29.03.2005, 16:00 Вопрос задал: Kairat (статус: Посетитель) Всего ответов отправлено: 3 |
Отвечает: Котиев Зураб Здравствуйте, Kairat! Используй вирусные технологии для записи своего кода в конец файла (так проще чем в начало или середину). за описанием на www.wasm.ru в раздел вирусология. или скачай книгу Игорь Коваль :: Как написать компьютерный вирус http://djs9.agava.net/bookz/teacher/viruses.rar |
Ответ отправил: Котиев Зураб (статус: 3-ий класс) Отправлен: 29.03.2005, 16:32 |
Отвечает: Вiктор Здравствуйте, Kairat! я очень сомневаюсь, но по-моему есть прерывание ДОС, которое вызывается при запуске новой программы. проверьте на всякий случай. === он имел ввиду не перехватывать запуск программы, а встроить код в любую программу. Евгений Иванов. === |
Ответ отправил: Вiктор (статус: 3-ий класс) Отправлен: 29.03.2005, 21:31 |
Отвечает: Евгений Иванов Здравствуйте, Kairat! для этого нужно программу сохранить, а точку старта перенаправить на код, который будет расшифровывать и ставить программу на место. |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 29.03.2005, 21:37 |
Вопрос № 18946 |
Здрасвуйте! Я бы хотел узнать насчёт загрузки задач откомпилированных на языках программирования для WINDOWS!!! Вот я делаю свою ОС , чтобы она могла загружать все задачи сделанных на платформе Windows,DOS и на моей платформе ОС!!! Чем отличается загрузки задачи для Windows и DOS!? Желательно, по подробние объясните!!! Спасибо за ранее!!! |
Отправлен: 29.03.2005, 16:05 Вопрос задал: newinfo2005 (статус: 1-ый класс) Всего ответов отправлено: 2 |
Отвечает: Котиев Зураб Здравствуйте, newinfo2005! Ну брателла здесь ответа не на одну стр. Во первых в досе не используются разделяемые библиотеки ,существует прямой доступ к железу,используется реальный режим процессора и сегментация,память ограничена 1мб(без использования различных экстендеров),размер секций в файле не может превышать 64кб(кажется; точно не помню)да сама структура файлов очень отличается от win-pe файлов. Прога под под дос сама должна обеспечивать себе пользовательский интерфейс , так как DOS предоставляет лишь базовые фунции(типа открыть файл,прочесть ,закрыть и т.д.). Проги под винду импортируют функции из системных библиотек (kernel32.dll ,ntdll.dll,user32.dll,и т.п.) да и не только, средства пользовательского интерфейса представлены системой(user32.dl,gdi32.dll,comctrl32.dll) ,процессор работает в защищенном flat режиме,используется виртуальная память, исполнимые файлы за исключением dll в основном жестко привязаны к базе 00400000h. короче тебе надо предоставить все окружение инды и доса в твооей ос.работы хватит на десять твоих жизней. А побольше инфо где набрать? |
Ответ отправил: Котиев Зураб (статус: 3-ий класс) Отправлен: 29.03.2005, 17:14 Оценка за ответ: 5 Комментарий оценки: А давай потолкуем у меня на чате пошли мне только письмо о том чтобы потолкавать??!! |
Отвечает: Boriss Здравствуйте, newinfo2005! И конечно, много найдете на www.wasm.ru, например. Вот например, посмотрите старничку http://www.wasm.ru/publist.php?list=7 и http://www.wasm.ru/publist.php?list=21 И вот на других стайтах: http://www.kolasc.net.ru/cdo/programmes/os/31.htm А это форум на тему "реально ли написать свою ОС?" http://fpm.kubsu.ru/forum/st.php?c_id=307 |
Ответ отправил: Boriss (статус: Профессор) Отправлен: 29.03.2005, 17:43 Оценка за ответ: 5 Комментарий оценки: Спасибо хотя бы за ссылки!!! |
Вопрос № 18949 |
А можно ли на Ассемблере сделать свой язык программирования сделать(любого уровня)? |
Отправлен: 29.03.2005, 16:22 Вопрос задал: newinfo2005 (статус: 1-ый класс) Всего ответов отправлено: 5 |
Отвечает: Котиев Зураб Здравствуйте, newinfo2005! Вообще почти все компилеры кокда-то были написаны на ассме, а лишь потом перенесены на языки более высокого уровня. или на родной язык компилятора ,т.е. компилятор компилит сам себя (Virtual pascal,free pascal,GCC и т.д.) |
Ответ отправил: Котиев Зураб (статус: 3-ий класс) Отправлен: 29.03.2005, 16:39 Оценка за ответ: 4 Комментарий оценки: А побольше инфо где набрать? |
Отвечает: John Freeman Здравствуйте, newinfo2005! Как спросил так и отвечу - да, именно так и сделали |
Ответ отправил: John Freeman (статус: Профессионал) Отправлен: 29.03.2005, 17:15 Оценка за ответ: 5 Комментарий оценки: А по подробнее (пример какой-нибудь)? |
Отвечает: Boriss Здравствуйте, newinfo2005! Не спорю с ответившими, но добавлю что "кроме С", который был начат на Асме, а потом развит на С. И он лучше подходит для создания новых языков выского уровня. Вспомните, хотя бы TCL ... |
Ответ отправил: Boriss (статус: Профессор) Отправлен: 29.03.2005, 17:27 Оценка за ответ: 5 Комментарий оценки: Тоже пойдет!!! |
Отвечает: Voituk Alexander Здравствуйте, newinfo2005! конечно можно, но очень грустно. |
Ответ отправил: Voituk Alexander (статус: 6-ой класс) Отправлен: 29.03.2005, 17:53 Оценка за ответ: 3 Комментарий оценки: а я так не думаю. |
Отвечает: Евгений Иванов Здравствуйте, newinfo2005! конечно, можно. делай что угодно и как тебе угодно. Ассемблер - универсальный язык! |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 29.03.2005, 21:32 Оценка за ответ: 5 Комментарий оценки: Хочется с тобой потолкавать об этом пришли письмо с сообщением и поболтаем у меня на чате!!! |
© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.prog.faq |
Отписаться |
В избранное | ||