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

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


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

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

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

Выпуск № 187
от 16.07.2005, 15:51

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


Вопрос № 23298: Очень часто из многих книг, авторы мимо ходом затрагивали такие термина, как CMOS и ПЗУ, до этого момента я думал, что CMOS - это и есть ПЗУ. Но в одной книге прямо сейчас читаю. Цитата: "в ПЗУ записать что - либо невозможно,...
Вопрос № 23303: Вопрос про массивы: Я задал массив в ассемблере: ... fibo dup(12) db ? ... Как получить доступ к конкретному элементу,например с индексом 4? Допусти в Паскале так: ... var fibo : array[1..12] of byte; ...

Вопрос № 23.298
Очень часто из многих книг, авторы
мимо ходом затрагивали такие термина, как
CMOS и ПЗУ, до этого момента я думал, что CMOS - это
и есть ПЗУ.
Но в одной книге прямо сейчас читаю.
Цитата: "в ПЗУ записать что - либо невозможно, а в
CMOS - памяти свободного места для хранения вирус-
ного кода никогда не хватит"

Дак чем же отличается ПЗУ от CMOS и наоборот?.
CMOS (Complementary Metal-Oxide Semiconductor).
ПЗУ (Постоянное Запоминающее Устройство).
Отправлен: 10.07.2005, 17:03
Вопрос задал: Терсков Алексей Николаевич (статус: Посетитель)
Всего ответов отправлено: 4

Отвечает: Евгений Иванов
Здравствуйте, Терсков Алексей Николаевич!
CMOS - применяется для хранения данных. их можно стирать.
ПЗУ - нельзя стереть. (ну если только ультрафиолетовые).

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

Отвечает: John Freeman
Здравствуйте, Терсков Алексей Николаевич!
CMOS это вообще не название чипа, это название структуры, а суть в том, что на основе CMOS сделали RAM с ОЧЕНЬ малым энергопотреблением, ну и размером соответствующим(изначально 16 байт и сейчас не сильно больше), вот этот RAM питается от батарейки годами и хранит настройки BIOS
---------
You're trying to take me They trying to make me This is the only Gives me the only thing Tired of lying, I'm tired of lying The only thing I inderstand is what I feel...
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 10.07.2005, 21:49

Отвечает: Ayl
Здравствуйте, Терсков Алексей Николаевич!

ПЗУ (ROM, Read-only memory) - постоянное запоминающее устройство, допускается только чтение.
CMOS - энергонезависимая память, предназначена для записи и сохранения важных параметров для работы компа. В ней хранятся настройки BIOS, которые можно просмотреть и изменить через BIOS Setup. Размер памяти CMOS - несколько десятков байт.

В ПЗУ хранится программа POST и код для загрузки с дискового накопителя. Также хранятся все программы BIOS (кроме работы с видеокартой, Video BIOS маппируется на основную память прямо с карты). Область ПЗУ - с A0000 по FFFFF, причем адреса с A0000 по BFFFF отводятся для Video BIOS, С0000 - DFFFF - область для подключения дополнительной памяти (EMS), E0000 - FFFFF - собственно ПЗУ (стандартные обработчики прерываний, POST, IBM PC Identification Code, BIOS release date, etc).

---------
Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени
Ответ отправил: Ayl (статус: Профессор)
Отправлен: 11.07.2005, 13:21

Отвечает: ASMодей
Здравствуйте, Терсков Алексей Николаевич!
Многие путают CMOS и ПЗУ (ROM). Еще вместо ПЗУ часто говорят BIOS. Но это все совсем разные типы памяти, а BIOS - это вообще не память :)
1. ПЗУ - это отдельная микросхема постоянной памяти (на материнской плате ее можно найти по голографической наклейке). Именно в ПЗУ хранится BIOS.
Раньше ПЗУ можно было записывать специальными программаторами, предварительно очистив ее с помощью ультрафиолета, для чего в микросхеме было специальное окошко из кварцевого стекла. В современных компьютерах ПЗУ работает на так называемой Flash-памяти. Это значит, что ее можно стирать и перезаписывать специальными программами.
2. CMOS-память - это энергонезависимая память компьютера. Именно в ней хранятся все настройки BIOS'а, а также часы реального времени (RTC). Питается эта память от аккумулятора на материнской плате (потому и энергонезависимая).
Ответ отправил: ASMодей (статус: Профессионал)
Отправлен: 11.07.2005, 18:48


Вопрос № 23.303
Вопрос про массивы:

Я задал массив в ассемблере:
...
fibo dup(12) db ?
...

Как получить доступ к конкретному элементу,например
с индексом 4?
Допусти в Паскале так:
...
var fibo : array[1..12] of byte;
write(fibo[3]);
Для записи
fibo[3] := 3;
...
А в ассемблере можно?
Отправлен: 10.07.2005, 18:10
Вопрос задал: Терсков Алексей Николаевич (статус: Посетитель)
Всего ответов отправлено: 4

Отвечает: Евгений Иванов
Здравствуйте, Терсков Алексей Николаевич!
mov bx, offset fibo
mov si, 3
m1:
mov al,[bx+si]
inc si
cmp si, maxelem
jnz m1

применяя 32-бит, можно вот так (даже в реальном режиме, только обнули старшее слово!)
fibo dd dup(12) ?

mov ebx, offset fibo
mov esi , 3
m1:
mov eax, [ebx+esi*4]
inc esi
cmp esi, maxelem
jnz m1
то есть, учитывается размер элемента.

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

Отвечает: Master135
Здравствуйте, Терсков Алексей Николаевич!
В процессоре 80386 для записи эффективного адреса можно использовать любой 32-битный регистр общего назначения как базовый, а также любой регистр общего назначения кроме ESP как индексный. Так же появилась возможность умножения индексного регистра на 2, 4 или 8, что облегчает работу с массивами данных и два дополнительных сегментных регистра – FS и GS.
Поскольку в качестве базового и индексного регистра могут использоваться одни и те же регистры общего назначения, для определения сегмента по умолчанию важную роль играет порядок следования. Вначале идет базовый регистр, затем – индексный. При базовом регистре EBP или ESP сегмент по умолчанию – SS, во всех остальных случаях – DS.
Таким образом к элементу массива можно обращатся например так при этом занести в ЕСХ номер элемента массива A[ECX] Вот еще несколько примеров:
MOV BX, [ebx + ecx + 1] ; базовый регистр, индексный регистр и константа
MOV DX, gs:[edi] ; только индексный регистр
MOV SI, [eax + 2*eax] ; базовый регистр, индексный регистр и множитель

Приложение:

Ответ отправил: Master135 (статус: 6-ой класс)
Отправлен: 10.07.2005, 20:47

Отвечает: Ayl
Здравствуйте, Терсков Алексей Николаевич!

Конечно, можно.
Например, так:

mov bx, OFFSET fibo ; начало массива
mov al, 4 ; 5-й элемент массива (нумерация - с 0!)
xlat ; AL = BX [AL] - в AL - соотвествующий элемент массива

можно так:
mov bx, OFFSET fibo
mov al, [bx+4]

или так:
mov bx, 4
mov al, fibo [bx]

или так (для просмотра всех элементов):
mov si, OFFSET fibo
mov cx, 12

@loop:
lodsb ; AL = [SI]; SI = SI + 1
call Print_AL
loop @@loop


---------
Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени
Ответ отправил: Ayl (статус: Профессор)
Отправлен: 11.07.2005, 13:28

Отвечает: ASMодей
Здравствуйте, Терсков Алексей Николаевич!
Да почти так же, как и на паскале:
mov al, fibo[3]
Ответ отправил: ASMодей (статус: Профессионал)
Отправлен: 11.07.2005, 18:51


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

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

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

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

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


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


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

Яндекс


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

В избранное