Связь с администрацией сайта:       

demo

Среди толпы я одинок

Представление данных в ПК

То о чем пойдёт речь в данной главе может показаться довольно скучным однако чтобы программировать на ассемблере следует познакомиться с двоичными и шестнадцатиричными числами. Без понимания того, как на самом деле хранятся данные в памяти ПК невозможно пользоваться битовыми и логическими операциями и многим другим.

 

Read more...

Z-машина представляет собой дизайн для воображаемого компьютера: Z для "Zork", был первоначально разработан, чтобы играть. Как и любой компьютер, он хранит информацию ( в основном) в массиве переменных , пронумерованных от 0 до некоторого большого числа: это называется его памятью . Около 240 ячеек памяти отведены для легкого и быстрого доступа, и они называются глобальными переменными (так как они доступны для любой части программы , которая работает в любое время).
Две важные части информации не хранятся в памяти - программный счетчик (ПК) и стек . Z-машина непрерывно запускает программу, получив команду, хранящуюся в ПК в памяти, действуя по инструкции , а затем перемещает позицию к следующему. Набор команд из Z-машины (диапазон возможных действий и они кодируются как номера в памяти) занимают большую часть этого документа.
 

Read more...

Введение
Для человека который заинтересовался программированием на ассемблере актуален вопрос - зачем он вообще нужен? Ведь сейчас существует достаточно большое количество эффективных сред программирования - Borland C++ Builder, Delphi, MS Visual Studio....к тому же все пишут на C/C++ Java, C#. Может сложиться впечатление что знание C++ и концепций ООП это признак профессионализма....те кто хоть как то знает технологию MS .NET могут подумать что она ставит крест на ассемблере...однако всё это не совсем так. По моему опыту программирования и общения с другими "программистами" могу сказать что любой человек который относит себя к профессии программиста должен понимать основные концепции работы операционных систем, архитектуру ПК, вобщем то - как вообще выполняются его программы на ПК! В противном случае он будет являтся лишь пользователем (возможно и опытным) тех средств (Delphi, Builder, ....) которые он использует, а не настоящим программистом! В идеале программист это хакер в первоначальном смысле данного слова - оно означает профессионала ДЕТАЛЬНО разбирающегося в своей области. Ну и конечно знание ассемблера приблизит вас к такому профессионализму.
 

Read more...

В Z-машине, номера обычно хранится в 2 байтах (в виде наиболее значащего байта, а затем младшего по статусу) и удерживать любое значение в диапазоне от $0000 до $FFFF ( от 0 до 65535 в десятичных числах).
Эти значения иногда рассматривают как знаковыми, в диапазоне от -32768 до 32767. Эффективно -n хранить в виде 65536 -n и поэтому верхний бит является знаковым битом.
2.2.1
Операции численного сравнения, умножение, сложение, вычитание, деление, остаток после разделения и печати чисел. Побитовые операции без знаков. (В частности, так как сравнение подписано, это небезопасно для сравнения двух адресов с использованием JL и JG)
 

Read more...

1.1 Области памяти
Карта памяти Z-машины представляет собой массив байтов с "байт адресом" работает от 0 вверх. Разделено на три области: "динамический", "статический" и "высокий".  Динамическая память начинается с байта адреса $00000 и работает от байта до байта адреса, хранящегося в слове на $0e в заголовке. (Динамическая память должна содержать по крайней мере 64 байта.) Статическая память немедленно следует далее. Его длительность не определена в заголовке (или в другом месте), хотя она должна закончиться на последнем байте сюжетного файла или с помощью байта адреса $0ffff (в зависимости от того, что меньше). Высокая память начинается с "отметки уровня памяти"( high memory mark) (адрес байта хранится в слове на $04 в заголовке) и продолжается до конца файла рассказа. В нижней части верхней памяти может перекрываться с верхней части статической памяти (но не с динамической памяти).
 

Read more...