[an error occurred while processing this directive]
По способу передачи и восприятия. Информацию, передаваемую видимыми образами и символами, называют визуальной, звуками - аудиальной, ощущениями - тактильной, запахами и вкусами - органолептической; информацию, выдаваемую и воспринимаемую средствами вычислительной техники, - машинной. По общественному назначению информацию можно разбить на три вида: личная, массовая и специальная.

Ассемблерные прграммы

Ассемблерные подпрограммы - это процедуры и функции, объявленные с директивой Assembler. В таких подпрограммах исполняемая часть не содержит begin... end и состоит из единственного ассемблерного оператора asm... end. Например:

Function LongMul(X,Y:Integer):LongInt; Assembler; 

asm

mov ax, X

imul Y {DX/AX содержат "длинный" результат} 

end;

При компиляции ассемблерных подпрограмм выполняется ряд оптимизаций кода, в том числе:

push bp {Сохраняется ВР}

mov bp,sp {ВР содержит текущую границу стека}

sub sp,Locals {Резервируется часть стека для размещения локальных переменных}

.......

mov sp,bp {Восстанавливается граница стека}

pop bp {Восстанавливается ВР}

ret Params {Из стека удаляются параметрыподпрограммы и осуществляется выход из нее}

Здесь Locals - общая длина в байтах всех объявленных в подпрограмме локальных переменных, a Params - длина (в байтах) всех формальных параметров. Если Locals и Params равны нулю, входной код не создается, а выходной содержит единственную инструкцию RET.

Все локальные переменные Турбо Паскаль размещает в стеке. Это относится как к обычным, так и к ассемблерным подпрограммам. Для ссылки на локальные переменные используется адресация по базе, задаваемой парой DS: ВР, поэтому при входе в процедуру всегда создается так называемый локальный стек: в регистр ВР помещается текущая граница стека, а сама эта граница смещается вверх на суммарную длину всех локальных переменных, чтобы работа со стеком внутри подпрограммы не разрушила локальные переменные. Например:

Procedure ...;

Assembler;

var

X: Word;

Y: Byte; 

asm

mov X, ax {Компилируется в mov [BP-2], ax}

mov ah,Y {Компилируется в mov ah,[BP-3]} 

end;

Ассемблерные функции должны следующим образом возвращать результат своей работы:

 

ЭВМ второго поколения (second-generation computer). ЭВМ этого поколения производились с середины 50-х до середины 60-х годов. Основу ЭВМ составлял полупроводниковый транзистор, сконструированный в 1948 г. группой американских физиков. В 1954 - 1957 гг. в США создастся первая ЭВМ на транзисторах NCR 304. В начале 60-х годов в СССР было освоено серийное производство ЭВМ 2-го поколения на транзисторах: М-220, БЭСМ-3, БЭСМ-4, «Урал-11», «Урал-14», «Урал-16», «Минск-22», «Минск-32», «Раздан-2», «Раздан-3», «Днепр-1», «Днепр-3» и др.
[an error occurred while processing this directive]