Вопрос № 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 - можно ли его записать в файл, а потом поставить наместо,
соответственно при помощи ассемблера?
Отвечает: В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. Объясните пожалуйста по подробнее, а то я в этом полный ламер. Заранее спасибо.
Отвечает: В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:09 Оценка за ответ: 5 Комментарий оценки: Да вы тогда правильно подсказали!
Вопрос № 25.357
CSEG segment ; начало общего сегмента
assume cs:CSEG, ds:CSEG, ss:CSEG ;привязка к сегментам и их имена
org 100h ;отступаем
;здесь я напишу условие для вывода дня недели в зависимости от ввода цифры 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, 18:17 Оценка за ответ: 5 Комментарий оценки: Да я конечно тут намутил! ;-) Совсем уже я на адреса забил