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

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


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

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

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

Выпуск № 225
от 31.08.2005, 20:47

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


Вопрос № 25315: Вопрос: Уважаемые эксперты! 1. объясните назначение ptr. 2. можно ли редактировать MBR при помощи 16-го ассемблера и вообще ассемблера? Далее не столь важно: 3. Есть такая команда, которая становится доступной при установки W...
Вопрос № 25316: Как мне создать объектный файл с расширением OBJ на ассемблере RadASM 2.2.0.2. Объясните пожалуйста по подробнее, а то я в этом полный ламер. Заранее спасибо....
Вопрос № 25354: Вопрос: Я как-то задовал вопрос про опоределение таблицы содержащей имена дней недели, начиная с воскресенья. Предполагая, что вскрс=1 и под каждое имя отведено по 11 символов, написать команды прямого доступа к табице. Во...
Вопрос № 25357: CSEG segment ; начало общего сегмента assume cs:CSEG, ds:CSEG, ss:CSEG ;привязка к сегментам и их имена org 100h ;отступаем BEGIN: mov ax,offset str1 mov strs[0], ax mov ax,offset str2 mov strs[1], ax ...

Вопрос № 25.315
Вопрос:
Уважаемые эксперты!
1. объясните назначение ptr.
2. можно ли редактировать MBR при помощи 16-го ассемблера и вообще ассемблера?

Далее не столь важно:
3. Есть такая команда, которая становится доступной при установки Windows eXPerience
востановление загрузочной записи жесткого диска.
Можно ли сделать загрузочным диск D: и поместить туда O/S, а в MBR при помощи
ассемблера указать, что бы загрузка O/S начаналась с hda2 или D:
4. Загрузчик O/S - можно ли его записать в файл, а потом поставить наместо,
соответственно при помощи ассемблера?
Отправлен: 25.08.2005, 21:12
Вопрос задал: Терсков Алексей Николаевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Вiктор
Здравствуйте, Терсков Алексей Николаевич!
насчёт ptr знаю такое:
inc byte ptr[bx]
inc dword ptr[bx]
команда inc обращается к ячейке памяти. Но эта ячейка может быть и байтом, и словом, и двойным словом. И в каждом случае надо действовать по-разному. Для того чтобы определить как должна работать команда, указывается как воспринимать эту область памяти - как байт или как слово или двойное слово. И для этого и используется "byte ptr" и т.п.
(а вроде ещё можно так:
inc [byte bx]
мой турбодебаггер только что такое скушал, не подавился. Хотя потом сказал что это было byte ptr[bx] )

Остальное не знаю.
---------
Turbodebugger - это вам не цацки-пецки...
Ответ отправил: Вiктор (статус: 4-ый класс)
Отправлен: 25.08.2005, 23:24

Отвечает: Евгений Иванов
Здравствуйте, Терсков Алексей Николаевич!
1. ptr - это Pointer.
преобразовывает выражение в соотв адресный тип


    PTR Type override Operator

    addrtype PTR expression ; Ideal mode
    or addrtype expression ; (PTR operator is optional)

    Converts expression to the specified address subtype.
    expr1 PTR expr2 ; MASM mode

    Converts expr2 to the type determined by expr1 where expr1 is one of:
    UNKNOWN (0), BYTE (1), WORD (2), DWORD (4), PWORD (6), QWORD (8),
    TBYTE (10d), NEAR (0FFFFh), FAR (0FFFEh) (all others = UNKNOWN).


Допустим, есть

    dw0 dw 0

    mov al, [byte ptr dw0]


3. www.symon.ru/
4. можно.

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 26.08.2005, 00:26


Вопрос № 25.316
Как мне создать объектный файл с расширением OBJ на ассемблере RadASM 2.2.0.2. Объясните пожалуйста по подробнее, а то я в этом полный ламер. Заранее спасибо.

Приложение:

Отправлен: 25.08.2005, 21:28
Вопрос задал: Глухов Александр Николаевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Вiктор
Здравствуйте, Глухов Александр Николаевич!
я не знаток RADASM, но всё же:
чтобы получить .obj-файл вам надо ассемблировать (скомпилировать) .asm-файл.
Я так понял что у вас он уже есть.
запустите радасм, откройте нужный вам файл.
(если вы его ещё не набрали, то откройте новый файл, наберите в нем текст программы и сохраните с расширением .asm)
выберите в главном меню
make->assemble
или сразу нажмите F5.
тогда создастся .obj -файл, он будет в роде бы в том каталоге, где был исходный asm-файл.

А вообще-то я так понял что радасм рассчитан на работу с проектами, то есть он может делать obj-файлы, но ведь он может делать сразу exe-файлы, чтобы сразу получить готовую программу. Если вам надо именно obj-файл то можете делать, но если он вам нужен только для того, чтобы потом слинковать его в exe-файл, то можно сразу выбрать команду build или go и получить сразу готовую программу.
P.S. - все с чего-то начинали.
Удачи!
---------
Turbodebugger - это вам не цацки-пецки...
Ответ отправил: Вiктор (статус: 4-ый класс)
Отправлен: 25.08.2005, 23:44


Вопрос № 25.354
Вопрос:
Я как-то задовал вопрос про опоределение таблицы содержащей имена дней

недели, начиная с воскресенья. Предполагая, что вскрс=1 и под каждое имя

отведено по 11 символов, написать команды прямого доступа к табице.
Вопросы на эту тему:
1. Здесь только предполагается, что имена таблицы имеют 11 символов,

значит прямой доступ будет попадать не на начало имени элемента таблицы?
2. Можно ли просто доставить пробелы в словах, т.е.
"воскресенье"
"понедельник"
"вторник "
"среда "
"четверг "
и т.д.
3. Будет ли строковые переменные хранить эти пробелы?, ведь если будут,

то прямой доступ проще оргранизовать.
Отправлен: 26.08.2005, 15:01
Вопрос задал: Терсков Алексей Николаевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Терсков Алексей Николаевич!
лично я тебе отвечал, что нужно сделать массив адресов. а строки хранить отдельно. при этом доступ будет идти по номеру строчки. всё просто. и каждую строчку ты сможешь изменять...
удачи
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 26.08.2005, 15:09
Оценка за ответ: 5
Комментарий оценки:
Да вы тогда правильно подсказали!


Вопрос № 25.357
CSEG segment ; начало общего сегмента
assume cs:CSEG, ds:CSEG, ss:CSEG ;привязка к сегментам и их имена
org 100h ;отступаем

BEGIN:

mov ax,offset str1
mov strs[0], ax
mov ax,offset str2
mov strs[1], ax
mov ax,offset str3
mov strs[2], ax
mov ax,offset str4
mov strs[3], ax
mov ax,offset str5
mov strs[4], ax
mov ax,offset str6
mov strs[5], ax
mov ax,offset str7
mov strs[6], ax

;здесь я напишу условие для вывода дня недели в зависимости от ввода цифры 1-7, т.е. если пользователь введе 2, то программа выведет на экран слово понедельник.

INT 20h
db strs 7 dup (?)
str1 db 'воскресенье',0Ah,0Dh,'$'
str2 db 'понедельник',0Ah,0Dh,'$'
str3 db 'вторник....',0Ah,0Dh,'$'
str4 db 'среда......',0Ah,0Dh,'$'
str5 db 'четверг....',0Ah,0Dh,'$'
str6 db 'пятница....',0Ah,0Dh,'$'
str7 db 'суббота....',0Ah,0Dh,'$'

CSEG ends ;завершить сегмент
end BEGIN ;завершить метку

; мне по заданию нужно так, как подсказал AYL:
; str1 [(weekDay - 1) * 11]
; т.е., как я понимаю, то если пользователь захочет посмотреть на строку
; 3, то он вводит 3 и видит: str1 [(3 - 1) * 11] = 22 (вторник....).
; тогда можно сделать так
db str ' str1 db 'вооскресеньепонедельниквторник....среда......четверг....пятница....суббота....'
; пеоременная занимает 77 байт.
; я прав?
Отправлен: 26.08.2005, 16:18
Вопрос задал: Терсков Алексей Николаевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Терсков Алексей Николаевич!
что ты творишь!!!

Пиши вот так:

strs DW 7 dup (?)

mov strs[0], offset str1
mov strs[1*2], offset str2
mov strs[2*2], offset str3


---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 26.08.2005, 18:17
Оценка за ответ: 5
Комментарий оценки:
Да я конечно тут намутил! ;-)
Совсем уже я на адреса забил


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

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

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

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

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


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


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

Яндекс


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

В избранное