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

Ассемблер? Это просто! Учимся программировать


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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 790
от 27.06.2007, 16:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 382, Экспертов: 30
В номере:Вопросов: 2, Ответов: 3


Вопрос № 92386: Дан массив чисел, в памяти начиная с адреса 3000h длиной 90h элементов. Надо провести сортировку масива по возрастанию. Програмка пишеться на эмуляторе процессора intel 8080. Заранее благодарен!...
Вопрос № 92503: Здраствуйте уважаемые эксперты! Скажите пожалуйста зачем нужно задавать каие-то сегменты данных (а иногда и несколько сегментов данных) и кода в тексте программы к примеру: .386p .model flat DATA segment public &q...

Вопрос № 92.386
Дан массив чисел, в памяти начиная с адреса 3000h длиной 90h элементов. Надо провести сортировку масива по возрастанию. Програмка пишеться на эмуляторе процессора intel 8080.

Заранее благодарен!
Отправлен: 21.06.2007, 18:53
Вопрос задал: Алексеев Андрей Владимирович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Алексеев Андрей Владимирович!

Смотрите приложение.
Только сортировка массива.
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 22.06.2007, 16:41


Вопрос № 92.503
Здраствуйте уважаемые эксперты!
Скажите пожалуйста зачем нужно задавать каие-то сегменты данных (а иногда и несколько сегментов данных)
и кода в тексте программы
к примеру:

.386p
.model flat

DATA segment public "data"
ex db 0
IDEC_chan db 0
HW_port db 0
first_call db 0
next_addr dw 0
page_count dw 0
pag db 0
k dw 0
_DATA ends
_TEXT segment public "code"

здесь код

_TEXT ends

Когда я могу описать данные в сегменте кода,
а затем обойти их с помощью jmp, чтобы процессор не принял
их за инструкции! Или еще проще - вынести их за end! К примеру:
...
jmp met1

var db 5

met1:
...
mov al,met1
add al,8h
...

Давайте рассмотрим вариант, когда нет ни каких операционных систем и exe файлов!
Я просто даю процессору исполнить простой ассемблерный софт!
Зачем здесь сегмент данных?????
Отправлен: 22.06.2007, 15:50
Вопрос задал: Maksim/max (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Котиев Зураб
Здравствуйте, Maksim/max!
уважаемый попробуйте запись в сегмент кода в защищенном режиме -сильно удивитесь.
Ответ отправил: Котиев Зураб (статус: 6-ой класс)
Ответ отправлен: 23.06.2007, 11:54

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Maksim/max!

Ваша программа должна попасть в память и начать выполнятся. Без ОС есть только один способ, тот который использует сама ОС, т.е. записать Вашу программу в MBR(Master Boot Record) расположенный на гибком(желательно) или жестком(очень круто для одной программы) в секторе:1 дорожки:0 диска. Этот сектор BIOS автоматически загружает в память и передает управление. Формат MBR можно найти в книге В. Кулакова "Программирование на аппаратном уровне", глава работа с дисками.
Работать на х86 процессорах без сегментов невозможно т.к. уже на аппаратном уровне идет определение физического адреса в памяти с использованием сегментов или селекторов, соответстенно для реального и защищенного режимов.
О режимах работы процессора и как адресуется память Вы можете прочитать в книге В. Юрова "Ассемблер:Учебник".
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 25.06.2007, 13:21


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное