ВУЗ:
Составители:
65
Глава 6. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Современные вычислительные системы (ВС) представляют
собой с точки зрения их пользователя комплекс «Аппарату-
ра + Программное обеспечение». Компьютер с традиционной
архитектурой работает, выполняя действия в соответствии с
программой, загруженной в его память. Все задачи, решаемые с
помощью ВС, требуют запуска и выполнения реализующих их
программ.
6.1. Понятие программы
Программа – это последовательность инструкций (команд),
описывающая алгоритм решения с помощью компьютера соот-
ветствующей задачи, для реализации которой эта программа бы-
ла разработана.
Для разработки программ используются специальные язы-
ки.
Программа может содержать инструкции, написанные на
языках программирования высокого уровня (ЯВУ), которые по-
зволяют записать алгоритмы в удобной для понимания челове-
ком форме, приближенной к естественным языкам (исходный
код), или последовательность машинных команд (инструкций,
«понятных» компьютеру, на котором данная программа должна
выполняться).
Готовыми к выполнению являются только программы, со-
держащие инструкции в двоичном машинном коде, – программы
на языке конкретного компьютера (компьютера с процессором
определенной модели или семейства), только такие программы
можно
загрузить в память компьютера для выполнения. Таким
образом, программы в машинном коде не являются «переноси-
мыми», их можно выполнять только на компьютерах с общей
архитектурой, системой команд, поддерживаемой этими компь-
ютерами, т.е. одинаковым машинным языком.
В табл. 6.1 приведен пример исходного кода на языке про-
граммирования высокого уровня (Visual Basic), на машинно-
ориентированном
языке (ассемблере) и машинный код процес-
66
соров Intel, который мог бы соответствовать этим операторам
ЯВУ и машинно-ориентированного языка.
В приведенном фрагменте программы в зависимости от
значения A вычисляется значение B. Для удобства машинный
код представлен не в двоичном, а в шестнадцатеричном виде,
что сокращает запись. В левом столбце машинного кода
показа-
ны относительные (эффективные) адреса, по которым в памяти
при загрузке программы на выполнение размещаются данные и
команды программы. Далее в каждой строчке следует код ко-
манды, занимающий обычно один байт, и операнды команды.
Машинно-ориентированный язык (Assembler) наиболее бли-
зок в языку, который «понимает» компьютер. В нем каждая ко-
манда, расположенная
в отдельной строке, соответствует одной
машинной команде (табл.6.1). В столбике таблицы, в котором
показан шестнадцатеричный машинный код, первое число пред-
ставляет собой адрес в памяти компьютера, по которому будет
при выполнении программы записана команда или данные, ма-
шинный код которых следует за этим числом в строке.
Исходный код программы на
языке программирования соз-
дает программист, используя при этом имеющиеся в его распо-
ряжении редакторы текстов (специальные программы, которые
Таблица 6.1. Фрагменты кода программ
Машинные команды
Код на Visual Basic
Код Assembler Шестнадцатеричный код
Dim A As Integer
Dim B As Integer
If A > 0
Then
B = A + 3
Else
B = –A + 3
End If
Exit Sub
BEGIN_IF: CMP A, 0
JLE ELSE_IF
MOV AX, A
MOV B, AX
ADD B, 3
JMP END_IF
ELSE_IF: MOV AX, A
MOV B, AX
NEG B
ADD A, 3
END_IF: RET
A DW 0
B DW 0
0100 83 3E 0125 R 00
0105 7E 0E
0107 A1 0125 R
010A A3 0127 R
010D 83 06 0127 R 03
0112 EB 10 90
0115 A1 0125 R
0118 A3 0127 R
011B F7 1E 0127 R
011F 83 06 0125 R 03
0124 CB
0125 0000
0127 0000
65 66 соров Intel, который мог бы соответствовать этим операторам Глава 6. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЯВУ и машинно-ориентированного языка. Таблица 6.1. Фрагменты кода программ Современные вычислительные системы (ВС) представляют собой с точки зрения их пользователя комплекс «Аппарату- Машинные команды ра + Программное обеспечение». Компьютер с традиционной Код на Visual Basic архитектурой работает, выполняя действия в соответствии с Код Assembler Шестнадцатеричный код программой, загруженной в его память. Все задачи, решаемые с помощью ВС, требуют запуска и выполнения реализующих их Dim A As Integer Dim B As Integer BEGIN_IF: CMP JLE A, 0 ELSE_IF 0100 0105 83 3E 0125 7E 0E R 00 программ. If A > 0 MOV AX, A 0107 A1 0125 R MOV B, AX 010A A3 0127 R Then ADD B, 3 010D 83 06 0127 R 03 B = A + 3 6.1. Понятие программы Else JMP ELSE_IF: MOV END_IF AX, A 0112 0115 EB 10 90 A1 0125 R B = –A + 3 MOV B, AX 0118 A3 0127 R Программа – это последовательность инструкций (команд), End If NEG B 011B F7 1E 0127 R описывающая алгоритм решения с помощью компьютера соот- Exit Sub ADD A, 3 011F 83 06 0125 R 03 END_IF: RET 0124 CB ветствующей задачи, для реализации которой эта программа бы- A DW 0 0125 0000 ла разработана. B DW 0 0127 0000 Для разработки программ используются специальные язы- ки. Программа может содержать инструкции, написанные на В приведенном фрагменте программы в зависимости от языках программирования высокого уровня (ЯВУ), которые по- значения A вычисляется значение B. Для удобства машинный код представлен не в двоичном, а в шестнадцатеричном виде, зволяют записать алгоритмы в удобной для понимания челове- что сокращает запись. В левом столбце машинного кода показа- ком форме, приближенной к естественным языкам (исходный код), или последовательность машинных команд (инструкций, ны относительные (эффективные) адреса, по которым в памяти «понятных» компьютеру, на котором данная программа должна при загрузке программы на выполнение размещаются данные и выполняться). команды программы. Далее в каждой строчке следует код ко- манды, занимающий обычно один байт, и операнды команды. Готовыми к выполнению являются только программы, со- Машинно-ориентированный язык (Assembler) наиболее бли- держащие инструкции в двоичном машинном коде, – программы зок в языку, который «понимает» компьютер. В нем каждая ко- на языке конкретного компьютера (компьютера с процессором определенной модели или семейства), только такие программы манда, расположенная в отдельной строке, соответствует одной можно загрузить в память компьютера для выполнения. Таким машинной команде (табл.6.1). В столбике таблицы, в котором образом, программы в машинном коде не являются «переноси- показан шестнадцатеричный машинный код, первое число пред- ставляет собой адрес в памяти компьютера, по которому будет мыми», их можно выполнять только на компьютерах с общей при выполнении программы записана команда или данные, ма- архитектурой, системой команд, поддерживаемой этими компь- ютерами, т.е. одинаковым машинным языком. шинный код которых следует за этим числом в строке. В табл. 6.1 приведен пример исходного кода на языке про- Исходный код программы на языке программирования соз- граммирования высокого уровня (Visual Basic), на машинно- дает программист, используя при этом имеющиеся в его распо- ряжении редакторы текстов (специальные программы, которые ориентированном языке (ассемблере) и машинный код процес-
Страницы
- « первая
- ‹ предыдущая
- …
- 31
- 32
- 33
- 34
- 35
- …
- следующая ›
- последняя »