Программирование для ibm pc icon

Программирование для ibm pc



НазваниеПрограммирование для ibm pc
Дата конвертации16.09.2012
Размер151.23 Kb.
ТипДокументы
1. /Troy/1.doc
2. /Troy/10.doc
3. /Troy/11.doc
4. /Troy/12.doc
5. /Troy/13.doc
6. /Troy/14.doc
7. /Troy/15.doc
8. /Troy/16.doc
9. /Troy/2.doc
10. /Troy/3.doc
11. /Troy/4.doc
12. /Troy/Издательство.doc
13. /Troy/ОГЛАВЛЕНИЕ.doc
14. /Troy/ПРЕДИСЛОВИЕ.doc
Программирование для ibm pc
Ввод, вывод и стандартная библиотека функций ввода-вывода
Библиотека языка си: общеупотребительные функции и макроопределения в этой главе сосредоточимся на тех функциях и макроопределениях, не «занимающихся»
Использование функций на языке ассемблера в программах на языке си
Создание библиотек и пользование ими
Указатель на символ. Например, объявление
Указатель на функцию, и последующий вы­зов функции, на которую показывает этот указатель. Второй прием основан на применении рекурсивных функций в языке Си
Более развитые приемы отладки программ
Введение в язык си
Структура и конструкция программы на языке си
Типы и структуры данных
Для персонального компьютера ibm pc
Введение в язык си часть 1
Книга предназначена для обучения языку Си и рассчитана на читателя, име­ющего основные представления о компьютере. Однако когда речь заходит об использовании специфических свойств ibm pc, то приводятся соответствующие разъяснения

ГЛАВА 1


ПРОГРАММИРОВАНИЕ ДЛЯ IBM PC

Компиляторы языка программирования Си существуют почти для всех персо­нальных компьютеров и большинства мини- и больших компьютеров. Этот язык разрабатывался как мобильный, т.е. позволяющий переносить программы с одного компьютера на другой.
Однако если Вы пишете программы для IBM PC или для компьютеров, совместимых с IBM PC, то образованная конкретной аппаратурой и операционной системой среда будет отличаться от существующих в других вычислительных системах. Любой компилятор должен быть ориентирован на кон­кретный компьютер и конкретную среду программирования. Эта книга посвящена компиляторам языка Си, разработанным для персональных компьютеров IBM PC (или совместимых с ними), работающих под управлением операционной системы PC-DOS или MS-DOS. Знание свойств IBM PC и границ его возможностей поможет разрабатывать лучшие программы как на языке Си, так и на любом другом языке программирования.

В этой главе кратко изложены специфические свойства компьютера IBM PC и его спутницы - операционной системы PC-DOS (или MS-DOS), разработанной фирмой Microsoft. Эта информация поможет понять некоторые из уникальных свойств, присущих компиляторам языка Си, разработанным для этой среды. В дан­ной главе описаны также некоторые аппаратные свойства IBM PC, которые будут использоваться в прикладных программах, разрабатываемых по ходу изложения книги. Если Вы уже знакомы с IBM PC и операционной системой PC-DOS или MS-DOS, то можете пропустить эту главу.

1.1 ВВЕДЕНИЕ

Компилятор представляет собой программу, предназначенную для преобразо­вания определенного языка программирования "высокого уровня" в машинный язык (или язык ассемблера). Персональный компьютер IBM PC выполнен на базе микропроцессора 8088 фирмы Intel. Совместимые с ним компьютеры также выпол­нены на базе микропроцессора 8088 или более быстродействующего микропроцес­сора 8086 этой же фирмы, машинный язык микропроцессоров обеих моделей один и тот же.

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

Однако бывают ситуации, когда программисту все-таки приходится копаться во "внутренней кухне" компьютера IBM PC. Это случается, например, если программа оказалась слишком велика для компьютера; во избежание этого надо знать пределы его памяти. Некоторая детализация знаний потребуется и в том случае, когда необходимо манипулировать специфическими компонентами аппаратуры IBM PC. Например, в гл. 9 и 10 будет разработана программа, обеспечивающая непосредственный доступ к памяти дисплея, и читателю понадобится определенное знание устройства компьютера. Эти сведения об аппаратуре, будучи дополненными общими представлениями о функциях операционной системы, помогут разрабаты­вать более качественные прикладные программы с помощью Вашего компилятора. Для начала рассмотрим свойства микропроцессора 8088 и границы его возмож­ностей. Затем обсудим некоторые свойства операционной системы PC-DOS.

1.2. МИКРОПРОЦЕССОР 8088

Основными компонентами IBM PC являются микропроцессор 8088, внутренняя оперативная память и периферийные устройства, например клавиатура, дисплей и дисководы. Микропроцессор состоит из центрального процессора (ЦП) и соедине­нных с ним внутренних регистров. Память организована в виде индивидуально адресуемых 8-битовых байтов. Центральный процессор извлекает данные из памяти и загружает их во внутренние регистры микропроцессора 8088, выполняет операции над находящимися в регистрах данными и при необходимости возвраща­ет результаты в память. Хотя микропроцессор 8088 имеет возможность доступа к любому 8-битовому байту памяти, тем не менее его называют 16-разрядным, пос­кольку за один прием он может обработать 16 битов. Каждый 16-битовый элемент памяти (состоящий из двух байтов) называется словом.

Разрядность регистров компьютера соответствует размеру его слова. У большинства компьютеров имеется специальный регистр, в который помещается положение в памяти, или адрес, следующей машинной команды, которая должна быть исполнена ЦП. Ориентируясь на 16-битовый размер слова, Вы можете пред­положить, что число байтов памяти, к которым может иметь доступ микропроцес­сор 8088, составляет 2 (65 536), но в действительности это не так. Для адре­сации в микропроцессоре 8088 используются два 16-битовых компонента: адрес сегмента и относительный адрес. Эти два компонента комбинируются для полу­чения 20-битового адреса по следующему алгоритму: Адресация памяти микропроцессора 8088

исполнительный адрес = (адрес сегмента х 16) + относительный адрес

Таким образом, 16-битовый адрес сегмента соответствует разбиению памяти на 16-битовые блоки, а относительный адрес используется как смещение относительно границы сегмента. Покажем некоторые примеры возможных границ сегментов:

Возможные значения адресов сегментов



Относительный адрес представляет собой 16-битовое значение, которое может изменяться от 0 до 65 536. Фиксируя адрес сегмента и меняя относительный адрес, микропроцессор 8088 может адресоваться к 65 536 (или 64К, где К = 1 024) бай­там памяти. Изменяя как адрес сегмента, так и относительный адрес, компьютер IBM PC может получить доступ к байтам с адресами от 0 до 1 114 095, что поз­воляет ему иметь объем оперативной памяти свыше одного миллиона байтов.

Микропроцессор 8088 содержит четыре различных регистра сегмента, которые могут хранить адреса сегментов. Они имеют имена DS (Data Segment - сегмент данных), CS (Code Segment - сегмент команд), SS (Stack Segment - сегмент стека) и ES (Extra Segment - дополнительный сегмент). Эти имена отражают конкретное использование указанных регистров микропроцессором 8088 и прог­раммой. Регистр DS содержит адрес сегмента области памяти, используемой для хранения данных программы. Регистр CS содержит адрес сегмента той области памяти, в которой хранятся машинные команды программы. Регистр SS со­держит адрес сегмента области памяти, используемой как структура данных, называемая стеком. (Стек в основном служит для хранения рабочих данных.) Наконец, регистр ES указывает на область памяти, которая может быть исполь­зована для хранения данных других типов (динамические данные) или резуль­татов выполнения строковых команд микропроцессора 8088.

Для доступа к данным или командам, находящимся в этих областях (называе­мых также сегментами), их относительный адрес добавляется к адресу сегмента, содержащемуся в одном из этих регистров. Обычно компилятор (или программист, если он пишет программы на языке ассемблера) для каждой программы генерирует команды, которые инициализируют регистры сегментов в соответствии с ее разме­ром и требованиями к ее данным, командам и стеку, а затем осуществляет доступ к памяти путем модификации относительных адресов, помещаемых в другие регистры. Например, в микропроцессоре 8088 имеется регистр IP (Instruction Pointer - указатель команд), значение которого добавляется к содержимому регистра CS для получения адреса следующей исполняемой команды. После оче­редного цикла исполнения команды микропроцессор 8088 увеличивает содержимое регистра IP так, чтобы оно указывало на следующую команду, а содержимое регистра CS обычно оставляет неизменным, В действительности программы рабо­тают эффективнее и их команды занимают меньший объем памяти, если со­держимое регистров сегментов не модифицируется. Учтите, что без модификации регистров сегментов максимальные размеры сегментов команд, данных, стека и до­полнительного сегмента равны 64 Кбайт.

Первые версии Си-компиляторов для IBM PC компилировали программу, ус­танавливали значения регистров DS, CS, SS в соответствии с размером результирующей программы, а затем манипулировали только относительными адресами. Они не были рассчитаны на генерацию машинных команд микропро­цессора 8088, манипулирующих регистрами сегментов после Их инициализации. Следовательно, полученные после компиляции программы могли содержать не более 64 Кбайт команд и 64 Кбайт данных. Во многих современных компиля­торах в обход этого ограничения предлагаются иные модели распределения памяти за счет манипулирования как относительными адресами, так и адресами сегментов. Эти модели обсуждаются в гл. 2.

Другим аспектом доступа к памяти, характерным для микропроцессора 8088, является порядок размещения 8-битовых байтов в 16-битовом слове. Покажем, к примеру, как микропроцессор 8088 может хранить в памяти число 262. Будучи преобразованным в 16-битовое двоичное число, число 262 примет вид 0000000100000110. Но микропроцессор 8088 сохранит его в памяти следующим образом:




Обратите внимание на то, что первый байт числа (который содержит его младшие биты) имеет меньший адрес (скажем, N), а второй байт со старшими битами имеет следующий адрес (N+1). Таким образом, адрес младшего байта слова является младшим. Для ссылок можно пронумеровать биты байта и слова. Будем использо­вать следующее соглашение о номерах битов:



Обратите внимание на то, что младший байт занимает биты 0-7, а старший - биты 8-15. В главе 9 обсуждаются средства, предусмотренные в языке Си для доступа к отдельным битам слова. При этом будем ссылаться на указанную схему нуме­рации битов.

Между прочим, для представления адресов памяти удобно пользоваться шестнадцатеричной системой счисления. (по основанию 16).

Это объясняется двумя причинами:

1) шестнадцатеричные числа преобразуются в двоичные и обратно очень просто;

2) некоторые служебные программы для IBM PC, например загрузчик LINK и отладчик DEBUG (обсуждаемые в гл. 16), представляют адреса в шестнадцатеричном виде.

Шестнадцатеричными цифрами служат 0-9 и A-F (т.е. десятичные значения 10-15). Для преобразования двоичного числа в шестнадцатеричное надо просто раз­делить его на группы по четыре бита, а затем преобразовать каждое 4-битовое значение в соответствующую ему шестнадцатеричную цифру:

двоичная запись:

0011000011111011

шестнадцатеричная запись: 30FВ

десятичная запись: 12539

(12539 = (Зх163+(10х1б2)+(15х16)+11)

Если пользоваться шестнадцатеричной системой счисления, то допустимые ад­реса памяти IBM PC изменяются от 00000 до FFFFF (20-битовый адрес записы­вается пятью шестнадцатеричными цифрами).

1.3. ОРГАНИЗАЦИЯ ПАМЯТИ

Микропроцессор 8088 может адресоваться более чем к одному миллиону байтов памяти. Разработчики ЭВМ IBM PC приняли некоторые соглашения по использо­ванию доступного адресного пространства. Часть адресного пространства, точнее, 640 Кбайт памяти с произвольным доступом, является общедоступной (для прикладных и системных программ). Оставшаяся часть адресного пространства за­резервирована фирмой IBM для различных специальных целей. Распределение ад­ресного пространства показано на рис. 1.1, иллюстрирующем назначение отдельных областей памяти.

Большая часть этой памяти называется запоминающим устройством с произвольной выборкой (ЗУПВ), поскольку содержимое его элементов может быть как считано, так и записано микропроцессором. Однако область памяти со старшими адресами реализо­вана в постоянном запоминающем устройстве (ПЗУ). Содержимое элементов этого типа памяти может быть только прочитано микропроцессором. Эта память содержит встроенный интерпретатор языка Бейсик и часть операционной системы, называемую BIOS (basic input/output system - основная система ввода-вывода).




Рис. 1.1. Распределение памяти компьютера IBM PC


В разд. 1.5 операционную систему рассмотрим более детально.

Обратите внимание и на то, что часть памяти выделена для обеспечения вывода изображения на экран дисплея. Любые данные, появляющиеся на экране, в действительности отображают содержимое этой области памяти. Как оказалось, для обеспечения вывода изображения был зарезервирован гораздо больший объем памяти, чем требуется для стандартного монохромного или цветного монитора.

По-видимому, это было сделано в расчете на будущие мониторы с высокой раз­решающей способностью. В гл.9 покажем, как пользоваться этой памятью для уп­равления экраном дисплея.

1.4. МАТЕМАТИЧЕСКИЙ СОПРОЦЕССОР 8087

В IBM PC предусмотрена установка дополнительного микропроцессора, так на­зываемого математического сопроцессора 8087 фирмы Intel. Он специализирован на выполнении операций над числами с плавающей точкой (вещественными числами). Без сопроцессора 8087 операции над числами с плавающей точкой выполняются подпрограммами с помощью арифметических операций над целыми числами. Чтобы использовать микросхему 8087, компилятор должен генерировать машинные команды, воспринимаемые этим сопроцессором; существуют Си-компиляторы, .обеспечивающие генерацию этих команд. Вернемся к этому в гл. 11 при обсуждений библиотеки математических функций.

1.5. ОПЕРАЦИОННЫЕ СИСТЕМЫ PC-DOS И MS-DOS

Аббревиатура DOS означает disc operating system (дисковая операционная систе­ма). Существуют две версии этой операционной системы для персональных ком­пьютеров. Обе разработаны фирмой Microsoft.

Операционная система PC-DOS продается фирмой IBM для своих персональных компьютеров PC, а версия MS-DOS - фирмой Microsoft для многих компьютеров, совместимых с IBM PC. В данной книге обе версии будем называть одинаково: PC-DOS или просто DOS.

В операционной системе DOS выделяются следующие компоненты:



обеспечивает основные операции по вводу-выводу

данных. Часть системы BIOS хранится в

ПЗУ, а часть - на диске;

эта часть операционной системы хранится на диске.

Она выполняет большинство функций

операционной системы по вводу-выводу данных,

используя BIOS;

это программа обработки команд, обеспечивающая

взаимодействие пользователя с компьютером.

Программа COMMAND.COM изображает приглашение к вводу (например, А >), а затем позволяет пользователю ввести команду. Она обрабатывает команду и либо исполняет ее сама (например, команды COPY или DIR), либо вызывает програм­му, находящуюся на диске (например, FORMAT или DISKCOPY).

Другой функцией, обеспечиваемой программой COMMAND.COM в опе­рационной системе DOS версии 2.0 (или более поздней), является переадресация ввода и вывода. Она будет рассмотрена в разд. 1.7 после обсуждения файловой системы DOS.

В совокупности системы BIOS и DOS обеспечивают выполнение операций по вводу-выводу данных при пользовании различными периферийными устройствами, соединенными с IBM PC, а также исполнение других программ. Кроме того, эта часть операционной системы создает на диске файловую систему и обеспечивает ее эксплуатацию.

Файловая система обеспечивает создание и удаление файлов путем ведения ка­талога имен файлов и номеров записей, занятых каждым файлом.

Конечно, при использовании операционной системы DOS надо придерживаться определенных соглашений. Внешние соглашения обсудим в этой главе, а некоторые внутренние соглашения, используемые при вызове функций BIOS и DOS, расс­мотрим в гл.12.

1.6. ФАЙЛОВАЯ СИСТЕМА DOS

Хранящиеся на диске данные группируются в файлы. Каждый файл имеет имя. Чтобы написанная на языке Си программа могла записать информацию в файл или считать ее из файла, операционной системе DOS следует сообщить его имя.

Имя файла состоит из двух частей: собственно имени и (необязательного) расширения. Согласно принятым в операционной системе DOS соглашениям имя файла содержит от одного до восьми символов и может состоять из букв латинско­го алфавита (прописные и строчные буквы не различаются) и символов $ # & @ !%()-{}/ \ ~ и ^.


За именем может следовать расширение, которое начинается с точки и может содержать до трех символов из числа указанных. Приведем примеры допустимых имен файлов DOS:

COMMAND.COM LC1.EXE VER#1.BAS 85ВООК

Некоторые соглашения распространяются и на расширения имен.

Например, расширение .ЕХЕ указывает на то, что в файле хранится исполня­емая программа, .BAS указывает, что в файле хранится программа на языке Бейсик. Расширение .OBJ имеют объектные файлы, выдаваемые компилятором, а .С - программы на языке Си.

Операционная система DOS позволяет задавать не только имя файла, но и его местонахождение. Файлы могут находиться на различных дисководах, и для за­дания их местонахождения перед именем файла может быть указано имя диско­вода. Имя дисковода состоит из одной буквы, за которой следует двоеточие. Например, имя A:LINK.EXE определяет файл LINK.EXE, содержащий исполняе­мую программу и находящийся на дисководе А. Именами других дисководов слу­жат В:, С: и D:. Если имя дисковода не задано, то операционная система DOS подразумевает текущий дисковод. Имя текущего дисковода можно определить по приглашению к вводу команды, выдаваемому операционной системой DOS. Например, приглашение А> показывает, что именем текущего дисковода служит А:. В разд. 2 руководства по DOS приводится полное описание текущего дисковода.

В версиях DOS с номерами до 2.0 все файлы располагались на диске вместе. Это допустимо, пока число файлов невелико. Однако при хранении большого числа файлов на дисках большой емкости необходим лучший способ организации разме­щения файлов. В операционной системе DOS 2.0 и более поздних версиях весь диск разбивается на отдельные области файлов.

Области файлов имеют структуру дерева. Рассмотрим, например, структуру областей файлов, показанную на рис. 1.2. Такая структура могла быть использова­на программистом, создающим программное обеспечение для работы в опе­рационной среде DOS.

Организация начинается с корневой области файлов. В данном примере корне­вая область файлов содержит четыре подобласти. Одна из них, UTILITY, содержит еще две подобласти. Корневую область и подобласти будем называть просто обла­стями. Имена областей файлов образуются по тем же правилам, что и имена



Рис. 1.2. Пример области файлов, имеющей структуру дерева


файлов: они могут содержать от одного до восьми символов, за которыми следует необязательное расширение. В область файлов могут входить как файлы, так и подобласти файлов.

Когда при работе в операционной среде DOS требуется получить доступ к файлу, нужно указать имя дисковода, область файлов и имя файла. Чтобы задать область файлов, необходимо указать путь к файлу, который состоит из имен обла­стей файлов, разделенных обратной косой чертой (\). Например, путем к файлу format.com, показанному на рис. 1.2, служит \UTILITY\OTHER. Если бы этот файл располагался на дисководе В:, то его полное имя имело бы следующий вид: B:\UTILITY\OTHER\FORMAT.COM

Если путь к файлу не указан, то по умолчанию используется текущая область файлов (см. разд. 5 руководства по пользованию операционной системой DOS, где обсуждаются команды, связанные с областями файлов).

Описанными здесь правилами воспользуемся в гл. 10, где будет обсуждаться доступ к файлам операционной системы DOS из наших программ, написанных на языке Си.

1.7. СТАНДАРТНЫЕ УСТРОЙСТВА ВВОДА-ВЫВОДА И ПЕРЕАДРЕСАЦИЯ ВВОДА-ВЫВОДА

Свойство операционной системы. DOS, известное под названием переадресация ввода и вывода, заимствовано из операционной среды UNIX™. Используя это свой­ство, можно писать программы так, чтобы входные данные считывались со стан­дартного устройства ввода и результаты выдавались на стандартное устройст­во вывода.

Обычно этими устройствами служат клавиатура и дисплей. Однако процессор команд операционной системы позволяет пользователям переадресовывать ввод-вы­вод другим устройствам.

Стандартное устройство вывода переадресуется с помощью командной строки вида

команда > имя_файла

где "команда" - это команда операционной системы DOS. При этом выводимые командой данные вместо экрана дисплея попадут в файл с именем "имя_файла". Если это имя относится к дисковому файлу, то файл открывается (и ранее записанные в него данные пропадают) и вывод программы записывается в этот файл. Если же вместо одного символа > указать два (>>), то вывод программы будет добавлен к прежнему содержимому файла. Например, команда

DIR > MYFILES

сохранит распечатку каталога текущей области файлов в файле MYFILES.

Ввод может быть переадресован аналогичным образом с помощью командной строки вида

команда < имя_файла

Например, команда

APROG < INPUT. FIL


заставит программу APROG считывать входные данные не с клавиатуры, а из файла INPUT.FIL.

Другое соглашение позволяет использовать стандартный вывод одной программы как стандартный ввод другой программы. Оно обеспечивает конвейеризацию, т.е. очень полезный способ объединения нескольких однофункциональных программ в более сложную комбинацию. Командная строка

DIR : SORT > FILE.OUT

вызовет передачу вывода команды DIR на стандартное устройство ввода служебной программы SORT. Затем полученная отсортированная распечатка каталога области файлов будет переадресована в файл FILE.OUT для постоянного хранения.

Существует много компиляторов языка Си, которые обеспечивают выполнение данных соглашений о стандартных устройствах ввода и вывода. Это позволяет писать программы на языке Си, обладающие возможностями переадресации вво­да-вывода за счет указания соответствующих параметров в командной строке.

1.8. ПАРАМЕТРЫ КОМАНДНОЙ СТРОКИ

Другим свойством, широко используемым в программах на языке Си, является возможность доступа к командной строке операционной системы, с помощью ко­торой программа была вызвана. Например, командная строка

filcom filel file2

вызовет для исполнения программу filcom и укажет ей в качестве параметров два имени файлов: filel и file2. Используя определенные соглашения (обсуждаемые в гл. 8), программист может обеспечить получение этих параметров программой на языке Си. Это свойство позволяет программам простым и удобным способом полу­чать доступ к ограниченному числу параметров.

1.9. ДРУГОЕ СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

В дополнение к операционной системе DOS поставляется другое программное обеспечение, помогающее извлечь максимум возможностей из компьютера. Обычно оно называется системным программным обеспечением, так как обеспечивает вы­полнение различных операций в Вашей вычислительной системе. Позже в этой книге коснемся применения таких широко употребительных системных программ, как загрузчик LINK, отладчик DEBUG, а также некоторых других служебных программ. Пользование ими обсуждается в соответствующих главах:

1.10. ЗАКЛЮЧЕНИЕ

Язык Си считается многими программистами "близким к машине", поскольку позволяет воспользоваться многими свойствами компьютера. В данной главе были представлены некоторые из основных свойств аппаратуры IBM PC и операционной системы DOS. Эти свойства будут использованы в последующих главах по мере представления языка в среде IBM PC.

ЛИТЕРАТУРА

Disk Operating System.- Microsoft Corp., Boca Raton, Florida: IBM. 1983.

Norton P. Inside the IBM PC: Access to Advanced Features and Programming. - Bowie, Maryland: Robert

J. Brady Co., 1983.

Norton P. Programmers Guide to the IBM PC. - Bellevue, Washington: Microsoft Press, 1985.



Похожие:

Программирование для ibm pc iconДокументы
1. /Ассемблер и программирование для IBM PC.txt
Программирование для ibm pc iconДокументы
...
Программирование для ibm pc iconДокументы
1. /IBM 6543 G50_001.djvu
2. /IBM 6543 G50_002.djvu
Программирование для ibm pc iconДокументы
1. /Кетков Ю.Л.GW-, Turbo- и Quick-Basic для IBM PC.1992.djvu
Программирование для ibm pc iconДокументы
1. /Головков А.В. Блоки питания для системных модулей IBM PC XT-AT. 1995.djvu
Программирование для ibm pc iconДокументы
...
Программирование для ibm pc iconДокументы
1. /Org IBM/LR1/ЛР1.doc
2. /Org IBM/LR1/Таблица...

Программирование для ibm pc iconIbm pc для пользователя
Х и полезных программ — Norton Commander. Norton Utilities, лексикон, Aidstest, Dr. Web, adinf и т д. Для опытных пользователей предназначены...
Программирование для ibm pc iconIbm pc для пользователя
Х и полезных программ — Norton Commander. Norton Utilities, лексикон, Aidstest, Dr. Web, adinf и т д. Для опытных пользователей предназначены...
Программирование для ibm pc iconДокументы
...
Программирование для ibm pc iconМетодические указания для студентов специальности Э. 01. 03. 00 «Экономика и управление на предприятии»
Вычислительная техника и программирование. Методические указания для студентов-заочников специальности А. 29. 10. 00 «Строительство...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов