Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 100 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-09-20
Вопрос №949
Здравствуйте эксперты!
Кто нибудь знает структуру исполняемого файла в линухе. Вот например простая программа на си типа Hello, World занимает 17кб. Это при том, что это не с++, а просто си , у которого должен быть грамотный компилятор. Или это вроде PSP только огромное!!!
Ответ
Здравствуйте, DiGiT!
в Linuxе используется ELF формат, если хош могу скинуть описание (на английском). если тот же Hello World в Linuxе сделать на ассемблере, то получится гораздо меньше, примерно 500 байт.
Отправил эксперт: BELTSY
Эксперт отправил ответов (всего): 33
Экспертная группа: Оптимизация программ
Вопрос №951
Даже не знаю, вопрос ли это; скорее некое дополнение к вопросу #914. Был там такой фрагмент кода
mov ax,40h
push ax
pop ds
mov [0072h],1234h
а почему не mov [0072h],5678h или mov [0072h],0EFCCh. Любое изменение этих двух байт приводит к перезагрузке компа (тока в режиме эмуляции ДОСа!:).
В общем ребята из большой корпорации мутят что-то...
Ответ
Здравствуйте, Начинающий ламер!
Это не ребята из большой корпорации... это стандарт БИОС.
Если в этот регистр записать 0x1234 то произойдет холодная перезагрузка. если 0x4321 то горячая... насчет других значений не могу точно сказать, но вполне возможно что какая-то перезагрузка происходит в любом случае, а вот какая (горячая или холодная) - это уж ты сам выясняй. :)
Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 129
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №949
Здравствуйте эксперты!
Кто нибудь знает структуру исполняемого файла в линухе. Вот например простая программа на си типа Hello, World занимает 17кб. Это при том, что это не с++, а просто си , у которого должен быть грамотный компилятор. Или это вроде PSP только огромное!!!
Ответ
Здравствуйте, DiGiT!
Странные у тебя цифры... ты наверное статически линковал.. :)
У меня получилось около 4к... вполне сопоставимо со всякими другими компиляторами.
Кстати хм... статически получилось - 48к... :) не знаю как ты линковал. :)
Формат ELF можешь посмотреть на нашем сайте (ссылка внизу)
В разделе "К размышлению"
Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 130
Экспертная группа: Оптимизация программ
Вопрос №947
С некоторых пор Интернет експлорер стал открываться в закрытом окне и чтобы открыть его нухно нажать правую кнопку мыши и на вопрос " закрыть " нажать лувую кнопку мыщи,
Подскажите, как избавиться от этой напасти.
Валерий
Ответ
Здравствуйте, Валерий!
Переставь експлорер..
Отправил эксперт: змей
Эксперт отправил ответов (всего): 35
Экспертная группа: Пользовательская работа с Windows
Вопрос №948
Привет всем!
Беспокоит такая проблема: под виндой выскакивает белым по синему: "ошибка четности памяти", причем машина стоит колом. Виновата не винда, не винт, не память(SIMM), не камень. Что может быть? Помогите...
Ответ
Здравствуйте, DiGiT!
Может быть так:
Посмотри в биосе настройки памяти, и отключи Parity Check Error
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 143
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №951
Даже не знаю, вопрос ли это; скорее некое дополнение к вопросу #914. Был там такой фрагмент кода
mov ax,40h
push ax
pop ds
mov [0072h],1234h
а почему не mov [0072h],5678h или mov [0072h],0EFCCh. Любое изменение этих двух байт приводит к перезагрузке компа (тока в режиме эмуляции ДОСа!:).
В общем ребята из большой корпорации мутят что-то...
Ответ
Здравствуйте, Начинающий ламер!
Просто нельзя писать память-память, а только через регистр!
А почему 1234h - это в документации так написано, а остальные являются зарезервироваными для дальнейшего использования, там написано "внутренние коды системы"
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 144
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №952
При записи в файл Паскаль кричит об ошибке.
Помогите.
Ответ
Здравствуйте, Kiran!
Ошибка не там, а на строку выше-ты пытаешься переменной размером в BYTE присвоить переменную типа Longint
ЗЫ Поздравте меня!:) Это 500 вопрос, пришедший мне, из них на я 145 ответил <8-()
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 145
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №954
Здравствуйте эксперты!
Помогите мне выйти на верный путь!
у меня есть начальные знания в паскале, С, С++,
но это всё не то. Дело в том что я мечтаю написать свою ОС, хотя-бы ядро, понятно что нужны глубокие знания асемблера,
но как мне всё это дело начать, к чему прежде всего приступить, как организовать работу и т.п., где можно найти подходящую литературу и полезные ресурсы?
Ответ
Здравствуйте, J'eka!
Хм.. вот ведь.. :)
многое нужно знать... но всегда убеждаешься что знаешь недостаточно...
Вообще всего знать невозможно... больше читай всякой разной технической литературы.. больше пиши программ, чтобы знания закреплялись... я уже 14 лет программирую..
Приходи в наш проект...
Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 131
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №954
Здравствуйте эксперты!
Помогите мне выйти на верный путь!
у меня есть начальные знания в паскале, С, С++,
но это всё не то. Дело в том что я мечтаю написать свою ОС, хотя-бы ядро, понятно что нужны глубокие знания асемблера,
но как мне всё это дело начать, к чему прежде всего приступить, как организовать работу и т.п., где можно найти подходящую литературу и полезные ресурсы?
Ответ
Здравствуйте, J'eka!
Готов помочь, по мере моих талантов :-) ссылками в Интернете и советами. Могу разные файлики с документациями подкинуть. Если захочешь- пиши galilov@astpage.ru
Для начала неплохо было бы почитать
Питер Абель "Язык ассемблера для IBM PC и программирования"
Такое вот странное название у весьма неплохой книжки...
Отправил эксперт: AL-GALI (http://www.astpage.ru/ - вроде как корпоративная страничка)
Эксперт отправил ответов (всего): 3
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №946
Здравствуйте уважаемые эксперты!
Недавно столкнулся с такой проблемой. Была Windows 2000, поставил Windows XP (Build 2600)English. У меня два раздела - C и D. На D инфа, на C система. После переустановки с форматированием(на C), файлы на D (с русскими именами) превратились в какие-то каракули. То же самое творится с нек-рыми программами, например Photoshop 6(Rus). Меню абсолютно нечитабельные! То же в Outlook, но только с небольшой разницей - если смотреть на список e-mailов в папке Inbox то русские тема и отправитель не видны. Содержание же читается. Но если открыть письмо то тема и отправитель отображаются нормально. Можно ли это как-то устанить?
И второе: в досе при переключении на русскую раскладку вместо русских букв одни ??????????????? Делал так:
1. В реестре прописывал:
HKLM\system\CurrentControlSet\Control\Keyboard Layot\DosKeybCodes значением 00000409 ставил RU
2. Последовательно выполнял:
kb16 ru
mode con cp select=866
chcp 866
Вроде бы русифицировалось, но после перезагрузки опять та же фигня. Засовывал это в Autoexec.nt но безрезультатно. В общем есть в XP подобие Autoexeca в Win 98?
Ответ
Здравствуйте, Andrey!
Ты долбанул русские шрифты - при этом хорошо бы иметь русский дистрибутив Win2000 (найти в архивах шрифты и скопировать windows\fonts) и всех остальных русских программ. А если сохранились старые, их достаточно просто скопировать в новое место.
Отправил эксперт: DM
Эксперт отправил ответов (всего): 56
Экспертная группа: Пользовательская работа с Windows
Вопрос №951
Даже не знаю, вопрос ли это; скорее некое дополнение к вопросу #914. Был там такой фрагмент кода
mov ax,40h
push ax
pop ds
mov [0072h],1234h
а почему не mov [0072h],5678h или mov [0072h],0EFCCh. Любое изменение этих двух байт приводит к перезагрузке компа (тока в режиме эмуляции ДОСа!:).
В общем ребята из большой корпорации мутят что-то...
Ответ
Здравствуйте, Начинающий ламер!
Насколько я знаю, при 1234h проходит теплая перезагрузка (т.е. быстро, без post и ещё много чего), при любом другом - холодная, т.е. с прыжком в POST. Это долго, но зато гарантирует полную перезагрузку.
Так что либо мутю (мучу, мутяю, мутываю, мужу..) я, либо - ты.
Отправил эксперт: DM
Эксперт отправил ответов (всего): 57
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №955
Здравствуте, эксперты.
Мой вопрос слегка не по вашей теме, но я не знаю куда обратиться.
Недавно поставил крутой комп и выяснил что модуль CRT Pascalя 7 для ДОС не пашет на крутых камнях (ошибка при инициализации процедуры Delay)
В I-nete нашол кучу материала по этой теме, но всё сводилось или к патчам для уже скомпилированых программ (что меня не устраевает), или к советам исправить сам crt а затем перекомпилировать библиотеку. Исправить-то я исправил, а вот перекомпилить не могу: проограмма запрашивает main.obj, коего у меня нету (то ли я - тормоз, то ли Pascal).
Пожалуйста, подскажите, что делать и где взять уже запатченые crt.tpu, либо turbo.tpl.
C уавжением, Олег.
Ответ
Здравствуйте, Олег!
Я там напрямую отправил кое-что :))
Кстати, crt там уже исправлен!
Желаю приятно повеселится :))
Отправил эксперт: Gn
Эксперт отправил ответов (всего): 14
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №954
Здравствуйте эксперты!
Помогите мне выйти на верный путь!
у меня есть начальные знания в паскале, С, С++,
но это всё не то. Дело в том что я мечтаю написать свою ОС, хотя-бы ядро, понятно что нужны глубокие знания асемблера,
но как мне всё это дело начать, к чему прежде всего приступить, как организовать работу и т.п., где можно найти подходящую литературу и полезные ресурсы?
Ответ
Здравствуйте, J'eka!
Уважаемый эксперт Dron со своим http://spawnhole.narod.ru/asmos/asmos.html тебе в этом уж точно поможет
Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 158
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №952
При записи в файл Паскаль кричит об ошибке.
Помогите.
Ответ
Здравствуйте, Kiran!
Нельзя писать program write;
используй другое имя для программы!! Это же предопределенная процедура!
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 121
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №957
Приветствую Вас Эксперты!
Не могли бы вы прокоментировать эту программу?
С уважением Влад.
Ответ
Здравствуйте, Влад!
А че тут собснно комментировать? прога складывает два десятичных числа и выводит результат в десятичной форме на экран. Недостатки следующие: нету выхода из программы ;), сумма чисел должна быть не больше 99, ато счетчик "обнуляется".
Вообще резюме такое: ГЛУПО СКЛАДЫВАТЬ В СТОЛБИК, КОГДА ЕСТЬ ЧУДЕСНАЯ КОМАНДА DAA...
Если это не ты писал и просто хочешь разобраться что к чему, то в приложении см. комментарии. Если это ты лично сообразил такую прогу, то чего ты собснно хочешь??? Оптимизировать??? Я могу написать тебе с ходу прогу, выполн. точно такие же действия, как и твоя, но в 3 раза меньше по размеру. Нада - мыль.
Приложение:
Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 159
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №957
оПХБЕРЯРБСЧ бЮЯ щЙЯОЕПРШ!
мЕ ЛНЦКХ АШ БШ ОПНЙНЛЕМРХПНБЮРЭ ЩРС ОПНЦПЮЛЛС?
я СБЮФЕМХЕЛ бКЮД.
Ответ
гДПЮБЯРБСИРЕ, бКЮД!
нАЪГЮРЕКЭМН ОНЯРЮПЮЧЯЭ БКЕГРЭ Б ЬЙСПС ГКНАМННЦН ОПЕОНДЮ хЙ'Ю
бШ МЮБЕПМНЕ МЕЛМНЦН МЕДНОНМЪКХ ЯЛШЯК ОПНХЯУНДЪЫЕЦН. еЯКХ БШ ГЮДЮЕРЕ ДЮММШЕ Б рейярнбнл БХДЕ, РН ДКЪ ОПЮБХКЭМНИ ПЮАНРШ ОПНЦПЮЛЛШ ХУ МЮДН ОПХБЕЯРХ Й дбнхвмн-деяърхвмнлс ОСРЕЛ ОПНЯРНЦН БШВХРЮМХЪ ВХЯКЮ 3030h.
мН ЙЮФЕРЯЪ Б БЮЬЕЛ ОПХЛЕПЕ ОПНЫЕ ХЯОПЮБХРЭ МЮВЮКЭМШЕ ДЮММШЕ.
уНРЪ ЩРН Х МЕНАЪГЮРЕКЭМН, ТСМЙЖХЪ AAA БЯЕ ЯЮЛЮ ОНДВХЯРХР. х МЕ ГЮАШБЮИРЕ ЙНППЕЙРМН ГЮБЕПЬЮРЭ ОПНЦПЮЛЛС.
кХАН, КХАН
mov ah, 4Ch int 20h
int 21h
ю РЕОЕПЭ ЯНАЯРБЕММН ЙНЛЛЕМРЮПХИ.
code segment ; мЮВХМЮЕЛ ЯЕЦЛЕМР ОПНЦПЮЛЛШ
org 100h ; пЕГЕПБХПСЕЛ 256 АЮИР ДКЪ PSP(ДКЪ .com-ОПНЦПЮЛЛШ)
assume cs:code ; оПНЯХЛ ЙНЛОХКЪРНП ОНДЯРЮБХРЭ МЮ ЛЕЯРН cs ДЕИЯРБХРЕКЭМНЕ ГМЮВЕМХЕ ЯЕЦЛЕМРЮ
begin: ; лЕРЙЮ МЮВЮКЮ ОПНЦПЮЛЛШ
mov al,cs:p1+1 ; гЮЦПСФЮЕЛ ЛКЮДЬХИ ПЮГПЪД ОЕПБНЦН ЯКЮЦЮЕЛНЦН
add al,cs:p2+1 ; оПХАЮБКЪЕЛ Й МЕЛС ЛКЮДЬХИ ПЮГПЪД 2-ЦН
aaa ; оПНХГБНДХЛ ДБНХВМН-ДЕЯЪРХВМСЧ ЙНППЕЙЖХЧ
mov cs:sum+1,al; гЮОХЯШБЮЕЛ ПЕГСКЭРЮР
mov al,cs:p1 ; гЮЦПСФЮЕЛ ЯРЮПЬХИ ПЮГПЪД ОЕПБНЦН ЯКЮЦЮЕЛНЦН
adc al,cs:p2 ; оПХАЮБКЪЕЛ Й МЕЛС ЯРЮПЬХИ ФЕ 2-ЦН Я СВЕРНЛ ОЕПЕМНЯЮ
aaa ; нОЪРЭ ЙНППЕЙЖХЪ
mov cs:sum,al ; х НОЪРЭ ЯНУПЮМЪЕЛЯЪ
add byte ptr cs:sum,48 ; оПХАЮБКЪЕЛ Й ДЕЯЪРХВМШЛ ЖХТПЮЛ ЙНД '0',
add byte ptr cs:sum+1,48 ; ВРНАШ ОНКСВХРЭ РЕЙЯРНБНЕ ОПЕДЯРЮБКЕМХЕ
mov dx,offset cs:sum ; оХЬЕЛ ЮДПЕЯ ЯРПНЙХ ДКЪ НРНАПЮФЕМХЪ Б DX
mov ah,9 ; бШБНД ПЕГСКЭРЮРЮ МЮ ЩЙПЮМ
int 21h ; ЯРЮМДЮПРМНИ ТСМЙЖХЕИ DOS
; мЕОКНУН АШ БШИРХ ХГ ОПНЦПЮЛЛШ: int 20h ХКХ ТСМЙЖХЪ 4ch ОПЕПШБЮМХЪ int 21h
p1 db '39' ; еЯКХ ВЕЯРМН, РН ДНКФМН АШРЭ p1 db 3,9
p2 db '12' ; p2 db 1,2
sum db ' ',13,10,'$' ;
code ends ;гЮБЕПЬЮЕЛ ЯЕЦЛЕМР ОПНЦПЮЛЛШ
end begin ;гЮБЕПЬЮЕЛ ОПНЦПЮЛЛС Х ЦНБНПХЛ, ВРН Её БШОНКМЕМХЕ ДНКФМН МЮВХМЮРЭЯЪ Я ЛЕРЙХ begin
Отправил эксперт: юКЕЙЯЮМДП
Эксперт отправил ответов (всего): 1
Экспертная группа: нАЫХЕ БНОПНЯШ ОН ОПНЦПЮЛЛХПНБЮМХЧ МЮ юЯЯЕЛАКЕПЕ ОНД DOS
Вопрос №959
Здравствуйте!
У меня вопрос.Хочу научиться программировать на Ассемблере.С чего начать,как,какие программы нужны.Нечего не знаю помогите.Зарание спасибо.
Ответ
Здравствуйте, Max!
Для этого нужны программы: Masm или Tasm (я предпочитаю Tasm), TD (обычно входит в состав Tasm) и SoftIce...
Masm и Tasm - компиляторы т.е. переводят твой асм в машинный код
Td и SoftIce - "дебагеры" с помощию их ты можешь отлаживать программы
з.ы.: Зайти на этот сайт http://src.fitkursk.ru (Здесь много интересных книг)
Отправил эксперт: Digger (www.digger-mib.chat.ru/freeware.htm - Мой софт :))
Эксперт отправил ответов (всего): 5
Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32
Вопрос №956
Привет всем !
Вопрос в следующем.
push 0
push offset pos_num
push cnt_of_bytes
push offset erdata
push fhandle
call WriteFile
push offset tempfilename (файл,чей хендл)
call DeleteFileA
Файл удаляется, но запись не успевает произвестись. Это я
узнаю после восстановления файла. Если вторую ф-цию закоментировать,
все пишется. Так вот, как сделать чтобы удаление дожидалось
окончания записи ?
Буду рад любому ответу.
Макс (maxe@mail.kz)
Ответ
Здравствуйте, Макс!
Попробуй вставить проверку т.е. использывать API GetFileSize и если файл изменился до "нужного" размера, то его можно удалить!!
Отправил эксперт: Digger (www.digger-mib.chat.ru/freeware.htm - Мой софт :))
Эксперт отправил ответов (всего): 6
Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32
Вопрос №955
Здравствуте, эксперты.
Мой вопрос слегка не по вашей теме, но я не знаю куда обратиться.
Недавно поставил крутой комп и выяснил что модуль CRT Pascalя 7 для ДОС не пашет на крутых камнях (ошибка при инициализации процедуры Delay)
В I-nete нашол кучу материала по этой теме, но всё сводилось или к патчам для уже скомпилированых программ (что меня не устраевает), или к советам исправить сам crt а затем перекомпилировать библиотеку. Исправить-то я исправил, а вот перекомпилить не могу: проограмма запрашивает main.obj, коего у меня нету (то ли я - тормоз, то ли Pascal).
Пожалуйста, подскажите, что делать и где взять уже запатченые crt.tpu, либо turbo.tpl.
C уавжением, Олег.
Ответ
Здравствуйте, Олег!
У меня:
zpsoftware@pisem.net
Отправил эксперт: Nik
Эксперт отправил ответов (всего): 116
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №959
Здравствуйте!
У меня вопрос.Хочу научиться программировать на Ассемблере.С чего начать,как,какие программы нужны.Нечего не знаю помогите.Зарание спасибо.
Ответ
Здравствуйте, Max!
1) На SUBSCRIBE.RU есть рассылка comp.soft.prog.faq
2) Купи хорошую книгу, например, Зубкова, или скачай книгу (не помню
автора :( ) с сайта www.kalashnikoff.ru
3) Там же (см. пункт 2) есть MASM, TASM, отладчики и примеры программ.
Отправил эксперт: Nik
Эксперт отправил ответов (всего): 117
Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32
Подписаться на рассылки
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!
Регистрация в качестве эксперта
Архив выпусков
Ведущий рассылки,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
______________
По вопросам сотрудничества, рекламы и спонсорства обращайтесь:
- Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
- Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
- Издание книги (спонсорство): Sponsor@Kalashnikoff.ru
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
Реклама на сайте Kalashnikoff.ru
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу | Рейтингуется SpyLog |
В избранное | ||