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

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


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

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

Выпуск № 664
от 24.01.2007, 01:35

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


Вопрос № 71472: Уважаемые эксперты!Можете закидать меня камнями,но я в панике:в книгах Калашникова и Зубкова слово = 2б и номерация право->лево,а в учебнике информатики того борделя в котором я имею честь учится(Вальциферов и Дронов) слово = 4б и номерация лево-&...
Вопрос № 71502: Эксперты, мож вы знаете. Не нахожу в Clipper возможности определить размер текстового файла . Может кто подскажет- на ассемблере как написать такую подпрограмму. Тока как скомпилить ее с клиперовским модулем- я тоже не знаю. :( И на ассемблере писАл ...

Вопрос № 71.472
Уважаемые эксперты!Можете закидать меня камнями,но я в панике:в книгах Калашникова и Зубкова слово = 2б и номерация право->лево,а в учебнике информатики того борделя в котором я имею честь учится(Вальциферов и Дронов) слово = 4б и номерация лево->право
чтото я потерялся в этом вопросе!
Отправлен: 18.01.2007, 09:45
Вопрос задал: ATZATZ (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Олег Владимирович
Здравствуйте, ATZATZ!

Калашников и Зубков правы :)
Слово традиционно = 2 байта, как в приложениях для DOS
Но так как современные компьютеры в подавляющем большинстве 32разрядные, то единицу памяти 4 байт (традиционно двойное слово) начинают называть словом. В некоторых статьях по ИТ размер слова даже отдельно оговаривается.

Что касается нумерации бит, то всегда самый младший разряд имеет номер 0, а самый старший - 15 (в слове). Это связано наверняка с тем, что бит с номером k определяет k-ый разряд в двоичном числе, т.е. 2^k. Если нумерацию перевернуть, считать 2^(16-k) будет труднее. Кроме того, некоторые команды ассемблера (BT, BSF, например), имеют дело непосредственно с номерами бит, и, как показывает практика, нумерация по Калашникову верна.

Удачи!
---------
Факультет ПМ-ПУ - лучший в СПбГУ!
Ответ отправил: Олег Владимирович (статус: 10-ый класс)
Ответ отправлен: 18.01.2007, 10:42
Оценка за ответ: 5
Комментарий оценки:
Спасибо!
"имеют дело непосредственно с номерами бит"-собственно поэтому я и спрашивал!

Отвечает: Sergijj
Здравствуйте, ATZATZ!

Учебника Вальциферова и Дронова в глаза не видел, но попробую рассказать вкратце как обстоят дела.
Процессоров, процессорных платформ и разных микроконтроллеров (не говоря уж про ОС) существует много (Вы, кстати, не указали ни платформу, ни ОС под которую написан вышеупомянутый учебник).

Существуют 8-битные архитектуры (например i80x086), 16-битные (например, i80x286), 24-битные (например, pi80x286), 32-битные (например, i80x386), 64-битные (например Athlon64) и т.д...
Также существуют не только двоичные платформы, но и троичные, а также всякие нейро- и фаззи-контроллеры, мультипроцессорные архитектуры и пр., но - это уже другой коленкор. Я подозреваю, что у Вас всё ж таки платформа 16/32-битная и процессор PC-compatible.

На всех упомянутых платформах могут существовать разные подходы к хранению данных, в т.е. как слева - направо, так и справа - налево.

На PC-compatible платформах (DOS, Windows, *nix) по-умолчанию применяются следующие размеры данных:
1 бит = 1 бит
8 бит = 1 байт = символ (кроме Unicode, там - слово)
16 бит = 2 байта = слово (Unicode: символ)
32 бита = 4 байта = двойное слово (в 32-битных системах слово "двойное" авторы учебников иногда опускают)
64 бита = 8 байт = четверное слово
80 бит = 10 байт = декабайт = пентаслово
1024 байта = 1 килобайт
1024 килобайта = 1 мегабайт
1024 мегабайта = 1 гигабайт
16384 байт = 16 килобайт = параграф (в зависимости от контекста - трактуется по разному)
65536 байт = 64 килобайта = сегмент (если система имеет сегментированную архитектуру)

Опять же по-умолчанию последовательность байт в PC-compatible системах следующая:
Сначала (слева - попорядку адресов) в память пишется младший байт, потом - старший байт.
Сначала (слева - попорядку адресов) в память пишется старшее слово, потом - младшее слово.
Но когда _это_ видит человек, то для того, чтобы ему правильно прочитать это число (например дамп памяти), нужно читать СПРАВА-НАЛЕВО (т.е. как обычно - начиная со старших разрядов числа, которые в результате приведённой выше записи оказались справа).
Например (десятично = 16-рично = 16-рично-побайтно = дамп памяти;):
32767 = 7FFFh = 7F FF = FF 7F;
2147483647 = 7FFFFFFFh = 7F FF FF FF = FF FF FF 7F;
100000 = 186A0h = 00 01 86 A0 = A0 86 01 00;
Также обращаю Ваше внимание на разную трактовку размеров данных, зависящую от компилятора и ОС (C-шная нотация):
char = байт = символ (стандарт)
wchar = слово = символ (Unicode)
int = слово (в 16-битных системах) = двойное слово (в 32-битных системах) = знаковое целое
short int = всегда слово = коротное знаковое целое
long int = всегда двойное слово = длинное знаковое целое

И т.д.
Надеюсь я ответил на Ваш, столь расплывчато заданный вопрос. Но если Вы всё же не удовлетворены ответом и Вам хотелось бы вникнуть глубже - я к Вашим услугам...;)

---------
Стучитесь! И Вас откопают...
Ответ отправил: Sergijj (статус: 7-ой класс)
Ответ отправлен: 18.01.2007, 11:17
Оценка за ответ: 5
Комментарий оценки:
Это не учебник по Асму,это посто учебник информатики :)


Вопрос № 71.502
Эксперты, мож вы знаете. Не нахожу в Clipper возможности определить размер текстового файла . Может кто подскажет- на ассемблере как написать такую подпрограмму. Тока как скомпилить ее с клиперовским модулем- я тоже не знаю. :( И на ассемблере писАл последний раз в 1990 году. :( Подскажите, пожалуйста.
Отправлен: 18.01.2007, 12:56
Вопрос задал: Alexander Babich (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Alexander Babich!
Создай BAT-файл
tasm FileSize
clipper %1
rtlink file %1 lib FileSize.obj
и вызывай с параметром - именем PRG-файла
FileSize.asm в приложении
Вызываем как
i:=FileSize("somefile.ext")

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 19.01.2007, 13:39
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.41 beta от 19.01.2007
Яндекс Rambler's Top100

В избранное