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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 234
от 09.09.2005, 22:36

Администратор:Калашников О.А.
В рассылке:Подписчиков: 257, Экспертов: 20
В номере:Вопросов: 5, Ответов: 9


Вопрос № 25781: Здравствуйте. Текст программы к вопросу № 25728. Извините забыл поставить приложение. Короче текст такой: ;ЭТО КОД который должен ассемблироваться и на масм и тасм ;com-прога cseg segment assume cs:cseg,ss:cseg,es:cseg,...
Вопрос № 25804: Спасибо всем, кто ответил на мой прошлый вопрос. Я пробовал писать программу на fasm(вот эта программа) CSEG segment org 100h Begin: mov ah,9 mov dx,offset Message int 21h int 20h Message db "Hello, world!$&qu...
Вопрос № 25820: Здравствуйте. Спасибо большое за ответы на вопросы(все стало понятно), но все равно выдается ошибка. Я делаю так: сохраняю набранную программу в Notepad(пробовал также и в edit.com) в виде "prog.asm" Затем начинаю работу DOS, там я...
Вопрос № 25823: Здравствуйте. Спасибо большое за ответы на вопросы(все стало понятно), но все равно выдается ошибка. Я делаю так: сохраняю набранную программу в Notepad(пробовал также и в edit.com) в виде "prog.asm" Затем начинаю работу DOS, там я...
Вопрос № 25834: Вот товарищи программисты! вроде бы реализовал алгоритм! :-) Конечно вы бы сделали лучше! ;-) Нехватает только некоторых условий, например: проверки на вхождения диапазона 0-9. можно конечно и буквы, но тогда в RAM будут храниться с...

Вопрос № 25.781
Здравствуйте.

Текст программы к вопросу № 25728. Извините забыл поставить приложение. Короче текст такой:

;ЭТО КОД который должен ассемблироваться и на масм и тасм
;com-прога
cseg segment
assume cs:cseg,ss:cseg,es:cseg,ds:cseg
begin:
mov ah,9
mov dx,offset text
int 21h
int 20h
text dw "Hello,world!$"
cseg ends
end begin

Причем после того как я его создал в текстовом файле с расширением .asm прога приняла следующий вид:
;
;com-
cseg segment
assume cs:cseg,ss:cseg,es:cseg,ds:cseg
begin:
mov ah,9
mov dx,offset text
int 21h
int 20h
text dw "Hello,world!$"
cseg ends
end begin

Но я её потом менял на первоначальный и всё равно не пашет, выходит сообщение "constant value too large".


Отправлен: 03.09.2005, 23:40
Вопрос задал: Дмитрий Хаймин (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: newinfo2005
Здравствуйте, Дмитрий Хаймин!
Вот:
cseg segment
assume cs:cseg,ss:cseg,es:cseg,ds:cseg
org 100h
begin:
mov ah,9
mov dx,offset text
int 21h
int 20h
text db "Hello,world!$"
cseg ends
end begin
Удачи.
Сравни мой и свой код!!
---------
Хочу стать умным и...много денег и халявного инета.
Ответ отправил: newinfo2005 (статус: 5-ый класс)
Отправлен: 03.09.2005, 23:49

Отвечает: Евгений Иванов
Здравствуйте, Дмитрий Хаймин!
используй DB, а не DW в строчках.

Приложение:

---------
Что имеем - не храним, потерявши - плачем

Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 04.09.2005, 00:09


Вопрос № 25.804
Спасибо всем, кто ответил на мой прошлый вопрос.
Я пробовал писать программу на fasm(вот эта программа)
CSEG segment
org 100h
Begin:
mov ah,9
mov dx,offset Message
int 21h
int 20h
Message db "Hello, world!$"
CSEG ends
end Begin
Но от при компиляции выдает ошибку "Cseg segment"
я пробовал после "Cseg segment" написать строку
Assume cs:cseg,ds:cseg,es:cseg,ss:cseg
но это не помогло.
Подскажите, пожалуйста, что я не так делаю.
Вопрос глупый,(я просмотрел все рассылки , но ничего не на этот вопрос не нашел) но я никак не могу открыть ни маsm.exe, ни ml.exe(окно появляется и исчезает) пробовал и в windows, и в dos(маsm я брал в рекомендуемых программах к изучению на данном сайте , т. е. версия 6.11)
При установке я вибираю Install the Microsoft Macro Assembler--ms-dos/Microsoft Windows--а дальше выбираю везде Yes.

Отправлен: 04.09.2005, 11:03
Вопрос задал: Qwe (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Qwe!
возможно, понадобится Model tiny.

также важно case букв.
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 04.09.2005, 11:10

Отвечает: Sager
Здравствуйте, Qwe!
Я же тебе уже ответил, что нужно делать. ml.exe - это консольная программа и соответственно, сделав все необходимое он закрывается, но слишком быстро. нужно все запускать из командной строки, либо проще вообще установи себе RadAsm и все твои проблемы решены - это классная и удобная среда разработки для ассемблера, ты лишь путь к масму укажи и спокойно компиль проги.
radasm - http://www.wasm.ru/toollist.php?list=7
Ответ отправил: Sager (статус: 6-ой класс)
Отправлен: 04.09.2005, 11:44

Отвечает: ASMодей
Здравствуйте, Qwe!
Вы бы хоть доку какую по FASM прочитали. У него синтаксис отличается от TASM/MASM. Пример в приложении.

Приложение:

Ответ отправил: ASMодей (статус: Профессионал)
Отправлен: 04.09.2005, 21:27


Вопрос № 25.820
Здравствуйте. Спасибо большое за ответы на вопросы(все стало понятно), но все равно выдается ошибка.
Я делаю так: сохраняю набранную программу в Notepad(пробовал также и в edit.com) в виде "prog.asm"
Затем начинаю работу DOS, там я указываю путь к программе masm6.11 и prog.asm, т.е.:
c:masm6.11inml.exe prog.asm/at (пробовал также дописать и c:prog.asm/at ошибка таже)
на это я получаю ответ:
assembling:prog.asm/at
fatal error A1000:cannot open file : prog.asm/at
Скажите ,пожалуйста, что я не так делаю.
Отправлен: 04.09.2005, 15:21
Вопрос задал: Qwe (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Qwe!
Попробуй найти такую программу FAR manager.
и всё сразу будет по другому....твоя жизнь изменится... :))
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 04.09.2005, 15:28

Отвечает: Sager
Здравствуйте, Qwe!
пробел после prog.asm поставь и AT заглавные
prog.asm /AT
Ответ отправил: Sager (статус: 6-ой класс)
Отправлен: 04.09.2005, 15:37


Вопрос № 25.823
Здравствуйте. Спасибо большое за ответы на вопросы(все стало понятно), но все равно выдается ошибка.
Я делаю так: сохраняю набранную программу в Notepad(пробовал также и в edit.com) в виде "prog.asm"
Затем начинаю работу DOS, там я указываю путь к программе masm6.11 и prog.asm, т.е.:
c:masm6.11inml.exe prog.asm/at (пробовал также дописать и c:prog.asm/at ошибка таже)
на это я получаю ответ:
assembling:prog.asm/at
fatal error A1000:cannot open file : prog.asm/at
Скажите ,пожалуйста, что я не так делаю.
Вот данная программа:
CSEG segment
org 100h
Begin:
mov ah,9
mov dx,offset Message
int 21h
int 20h
Message db "Hello, world!$"
CSEG ends
end Begin
P.S.Извините,пожалуйста , что забыл отправить программу!
Отправлен: 04.09.2005, 15:25
Вопрос задал: Qwe (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: newinfo2005
Здравствуйте, Qwe!
НЕ
c:masm611inml.exe 1.asm/AT
а
c:masm611inml.exe 1.asm /AT

---------
Хочу стать умным и...много денег и халявного инета.
Ответ отправил: newinfo2005 (статус: 5-ый класс)
Отправлен: 04.09.2005, 15:42


Вопрос № 25.834
Вот товарищи программисты! вроде бы реализовал алгоритм! :-)
Конечно вы бы сделали лучше! ;-)
Нехватает только некоторых условий, например: проверки на вхождения диапазона

0-9. можно конечно и буквы, но тогда в RAM будут храниться символы на 48 символов

младше своего порядка.
После ввода символов начинает свою работу цикл, который ипреобразует ASCII коды в

числа. После цикла можно использовать введеное число! :-)
Например, для ввода в компьютер даты 2005.

Главная моя цель, реализация алгоритма, а с условиями разберусь потом! :-)

Почему нужно отступать на 2, а не на 1 байт?
В первом байте хранится число 11 - длина строки, а во втором?
Я отступил на два, т.к. заметил, что во втором тоже, что-то нужное!

Приложение:

Отправлен: 04.09.2005, 20:05
Вопрос задал: Вася Пупкин (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: mvp
Здравствуйте, Вася Пупкин!
Вы выводите строку string2, а потом пытаетесь ввести с клавиатуры на символы, которые у Вас запишутся на место string2. После вызова функции 0аh 21-го прерывания в начале буфера содержится его длина (т. е., она не меняется), а следуюющий байт - число введённых символов.
Далее вы отнимаете код нуля от всех сиволов, но используете для этого 32-х разрядные регистры, что приводит к бреду. Попробуйте так:
MOV CX,10 ; цикл ввода
mtk:
MOV Al, byte ptr [BX] ; данные по адресу BX поместить в AX
SUB Al,30h ; вычесть из полученного 30h
MOV byte ptr [BX], Al
ADD BX,1
LOOP mtk
Далее вроде всё верно. Странно, как она у вас работала :)

---------
Моя совесть чиста - не бывшая в употреблении
Ответ отправил: mvp (статус: 4-ый класс)
Отправлен: 04.09.2005, 21:30


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Отписаться
Вспомнить пароль

В избранное