При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Информационный Канал Subscribe.Ru |
Выпуск № 305
от 03.12.2005, 21:30
Администратор: | Калашников О.А. |
В рассылке: | Подписчиков: 261, Экспертов: 20 |
В номере: | Вопросов: 6, Ответов: 8 |
Вопрос № 30.337 |
проясните пожайлуста такую проблему с компоновщиком. Если сассемблировать такую программу(спасибо за исправленную программу): dosseg .model small .stack 200h .data password db 'fender','$' login db 100 dup (0) rig db 'correct','$' .code mov ax,@data mov ds,ax mov ah, 3fh mov bx,0 mov cx,3 mov dx, offset login int 21h and ax,ax jz fin mov cx,ax mov di,offset login mov si,offset password repez cmpsb je equals fin: mov ah,4ch int 21h equals: mov dx,offset rig mov ah,9 int 21h ret end а затем если попытаться слинковать полученный файл obj, то линковщик выдаёт такую фразу " Warning:DOSSEG directive ignored in module PASS.ASM". Потом он выдал такую фразу "Cannot generate COM file:stack segment present. В чём дело и что делать? |
Отправлен: 27.11.2005, 22:42 Вопрос задал: Fobos (статус: Посетитель) Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1) |
Отвечает: Евгений Иванов Здравствуйте, Fobos! убери DOSSEG и поставь ключ у связного для создания EXE-файла. --------- Что имеем - не храним, потерявши - плачем |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 27.11.2005, 23:00 |
Вопрос № 30.341 |
Добрай день эксперты. Мне нужна писать прораммы каторые запускаются после старта компьютера. Как мне надо оформить боот секор, штоб он передавал управление на мою программу? Программы болле 512б такшто нельзя делать просто из программы делать загрузчик. Надо штоб както загрузочноя программа передавала управление (загружала) другой программе. Спасибо за содействие. |
Отправлен: 27.11.2005, 23:16 Вопрос задал: Olmi5404 (статус: Посетитель) Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0) |
Отвечает: Sager Здравствуйте, Olmi5404! Конкретно здесь: http://web.archive.org/web/20041012054237/www.lowlevel.ru/articles/floppy_bootloader.htm А так еще почитай: http://www.wasm.ru/publist.php?list=24 www.sasm.narod.ru http://web.archive.org/web/20041009150223/www.lowlevel.ru/articles/#section0 И еще на сайте xakep.ru как раз начался цикл статей по написанию ОС(а где ОС там и загрузчик) |
Ответ отправил: Sager (статус: Студент) Отправлен: 28.11.2005, 16:19 Оценка за ответ: 5 |
Вопрос № 30.358 |
Я только-только начал учить ассемблер по эл. книге Ассемблер? "Это просто! Учимся программировать под MS-DOS" и тут же на 3 примере (где должна появляться рожа в верхнем левом углу) у меня возникли проблемы: прога компилируется без ошибок, создаются .obj и .com файлы, но при запуске вообще ничего не выводится. Работают только прерывания. Что делать? Для компиляции я использую TASM. Если поможите разобраться, буду рад! |
Отправлен: 28.11.2005, 08:36 Вопрос задал: Дмитрий Сергеевич (статус: Посетитель) Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0) |
Отвечает: Евгений Иванов Здравствуйте, Deemer85! mov ax, 261 aad int 16 sub ah, ah int 16 вот этот код вначале не забыл? удачи! --------- Что имеем - не храним, потерявши - плачем |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 28.11.2005, 10:01 |
Отвечает: Sager Здравствуйте, Deemer85! Этот вопрос задают чуть ли не каждую неделю и он уже всем надоел, поэтому эксперт Евгений Иванов вместо обычного понятного для новичка кода(который кстати у него неправильный, т.к. в результате команды aad ah=0fh - а это графический режим 640х480) пишет новые способы написания двух простых строчек: mov ax,3 int 10h Эти две строчки устанавливают текстовый видеорежим 80х25 |
Ответ отправил: Sager (статус: Студент) Отправлен: 28.11.2005, 16:03 Оценка за ответ: 5 Комментарий оценки: Большое спасибо! Всё заработало. |
Вопрос № 30.386 |
У меня вопрос: когда пишу в досе что то вроде.. С:masm611inml.exe C:MyProg.asm /AT мне выдаёт что то вроде Not found link.exe, и файл .obj создаёт... Потом когда я пишу C:masm611inlink.exe C:MyProg.obj линковщик создаёт мне файл .exe но что мне ещё более интересно, когда я пишу что то типа: С:masm611inml.exe C:MyProg.asm мне всё равно пишет Not found link.exe, и файл .obj создаёт... как я понял ему без разницы на команду /AT , почему ??? кстати когда он создаёт ехе файл, и запускает его, потом жмёшь ентер.. -4 раза файл.ехе появляется на диске с: файл.ехе, и в досе пишет мне ошибку: LINK : warning L4021: no stack segment и при запуске программы, пишет мне что то по китайски, вместо например: Нажмите любую клавишу, это моя вторая программа на ассемблере -- Из приложения 02 ( с сайта Kalashnikoff.ru ) я понял что эти две ошибки из за того что я ассемблирую, сом программу в ехе файл, но так как же сделать сом файл? пару дней назад я ассемблировал первую прог-у в сом файл, но так и не понимаю каким чудом мне это удалось..., теперь она ассемблируется исключительнно в ехе файл.... так что же я не правильно делаю ? Заранее спасибо за ответ... |
Отправлен: 28.11.2005, 17:15 Вопрос задал: Wlp (статус: Посетитель) Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0) |
Отвечает: Sager Здравствуйте, Wlp! На /AT ему не пофиг - просто почему-то ml.exe не может найти линкер и создает Obj файл, а потом ты явно линкуешь файл - вот и получается exe. Укажи линкеру ключ /tiny и у тебя будет *.com файл. |
Ответ отправил: Sager (статус: Студент) Отправлен: 29.11.2005, 15:14 Оценка за ответ: 5 Комментарий оценки: Синкс за ответ, а что тут говорить , это то что мне было нужно.. |
Вопрос № 30.397 |
Добрый день эксперты. Вот мне на дискетку надо записать две программы. Одну в первый сектор б другую в второй. Прерывание 13Н с функцией 3 неподходит, потомушто программа не в памяти а на жостком диска. Как быть? Спасибо за ответ. |
Отправлен: 28.11.2005, 19:45 Вопрос задал: Olmi5404 (статус: Посетитель) Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0) |
Отвечает: Sager Здравствуйте, Olmi5404! Берешь прерывание int 21h и считываешь поочередно файлы в память(сначало открываешь, потом считываешь, потом записываешь(это уже int 13h), а потом закрываешь(int 21h)). Все просто! Приложение: |
Ответ отправил: Sager (статус: Студент) Отправлен: 28.11.2005, 20:30 Оценка за ответ: 5 |
Вопрос № 30.402 |
Здравствуйте, уважаемые эксперты! Начал изучать книгу Калашникова О.А. "Ассемблер? Это просто" и сразу столкнулся с проблемой ассемблирования первой программы 001/PROG01.ASM. Сначала пытался это сделать так, как описано в приложении №01 :набрал программу в редакторе Dos Navigator, сохранил и в командной строке набирал > ML.EXE PROG.ASM /AT и получал ответ:" ML.EXE PROG.ASM " не является внутр. или внеш. командой, испол. прогр. или пакетным файлом.Открыть этот файл из Macro Assembler v6.12 тоже не удалось:после вопроса переписать или нет ряд файлов, окно программы закрывалось.Затем я установил MASM 32v7 и в окне QEDITOR открыл prog01.asm, меню Project - Assemble ASM File . Выдаёт ошибку: Assembling: C:\masm32\prog01.asm C:\masm32\prog01.asm(14) : fatal error A1010: unmatched block nesting : CSEG Том в устройстве C имеет метку СИСТЕМА Серийный номер тома: 4329-1BF9 Содержимое папки C:\masm32 26.11.2005 21:45 187 prog01.ASM 1 файлов 187 байт 0 папок 11љ825љ610љ752 байт свободно То же самое,если выбрать пункт "Assemble&Link".Пробовал разные варианты набора в командной строке в меню QEDITOR. Помогите, пожалуйста, разобраться с всем этим! P.S. На компе стоит Windows XP Home Edition. -- С уважением, silin mailto:silin@kaduy.ru |
Отправлен: 28.11.2005, 20:42 Вопрос задал: Силин А.А. (статус: Посетитель) Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0) |
Отвечает: Евгений Иванов Здравствуйте, Силин А.А.! Родной.. найди срочно программу FAR. и все твои проблемы сразу разрешатся, я тебе обещаю... Приложение: |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 28.11.2005, 20:59 Оценка за ответ: 4 |
Отвечает: Sager Здравствуйте, Силин А.А.! Вылазит ошибку, потому что нужно указывать полный путь до компилира. Когда ты запускаешь командную строку, то текущей является папка типа: C:Documents and Settingsyou_name А ml.exe и link.exe находятся там, куда установил пакет масм(по умолчанию, если не ошибаюсь C:masm611in) Поэтому пиши так: C:masm611inml.exe C:prog01.asm /AT И чтобы каждый раз так не писать создай батник(открой блокнот, впиши след. строки и сохрани с расширением bat, напр. compile.bat): C:masm611inml.exe C:prog01.asm /AT А закрывается окно потому, что в свойствах(правая кнопка, свойства, пункт программа, птичка закрывать окно по заверш проги ) указано закрывать дос окно по завершению программы - а она завершается потому, что не получила никаких параметров(файл кот надо скомпилить). |
Ответ отправил: Sager (статус: Студент) Отправлен: 28.11.2005, 21:07 Оценка за ответ: 4 |
© 2001-2005, Портал RusFAQ.ru, Россия, Москва. Идея, дизайн, программирование: Калашников О.А. Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31 Авторские права | Реклама на портале |
|
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq Архив рассылки |
Отписаться
Вспомнить пароль |
В избранное | ||