Программирование в кодах ЦВМ

Содержание

Слайд 2

Программирование на языке Ассемблер Ассемблер – машинно-ориентированный язык, расширенный средствами управления

Программирование на языке Ассемблер

Ассемблер – машинно-ориентированный язык, расширенный средствами управления трансляцией,

средствами связывания программ и макросредствами.
Ассемблер – это программа, генерирующая машинный код из исходного кода на языке Ассемблер.
Слайд 3

Программирование на языке Ассемблер

Программирование на языке Ассемблер

Слайд 4

Программирование на языке Ассемблер Характерные черты языка Ассемблер: 1) использование символических

Программирование на языке Ассемблер

Характерные черты языка Ассемблер:
1) использование символических имён операций;
2)

использование символических имён полей памяти вместо адресов:

Имя поля заменяет его адрес, а не значение, т.е. Summa = 45h

3) автоматическое распределение памяти;
4) исходный текст программы на Ассемблере состоит из операторов, каждый из которых занимает отдельную строку.

Слайд 5

Программирование на языке Ассемблер Операторы в УЦВМ: 1) оператор машинной команды

Программирование на языке Ассемблер

Операторы в УЦВМ:
1) оператор машинной команды – символическая

запись машинной команды:
[<метка>] <симв. КОп> [<операнд>] [;<комментарий>]
2) оператор псевдокоманды (директива):
[<метка>] <директива> <операнд> [; <комментарий>]
Машинные команды управляют процессором, а псевдокоманды – транслятором.
Слайд 6

Программирование на языке Ассемблер Псевдокоманды в УЦВМ: 1) [ ] start

Программирование на языке Ассемблер

Псевдокоманды в УЦВМ:
1) [<имя>] start <адрес> – первая

запись программы,
<имя> – имя всей программы
<адрес> – адрес загрузки программы
2) [<имя>] end <адрес> – последний оператор программы,
<адрес> – пусковой адрес (точка входа в программу)
3) [<метка>] word <операнд> – резервирование места для инициализированной переменной
4) [<метка>] resb <операнд> – резервирование определённого операндом количества байтов памяти
Слайд 7

Программирование на языке Ассемблер Пример составления программы на Ассемблере ; begin

Программирование на языке Ассемблер

Пример составления программы на Ассемблере

; begin if y>0

then y:=y-1 end.
dec start 0
lda y
comp c0
jlt k
jeq k
sub c1
k sta y
hlt
; данные
с1 word 1
c0 word 0
y resb 3
end dec
Слайд 8

Программирование на языке Ассемблер Индексирование элементов массива y указывает на первый

Программирование на языке Ассемблер

Индексирование элементов массива

y указывает на первый элемент массива.


Адрес элемента массива – адрес младшего байта элемента.
Для одномерного массива справедлива формула определения адреса заданного элемента:
E[i] = y + (i-1)*3
Слайд 9

Программирование на языке Ассемблер Способы обращения к элементам массива 1. Способ модификации команд (нереентерабельные программы):

Программирование на языке Ассемблер

Способы обращения к элементам массива

1. Способ модификации команд

(нереентерабельные программы):
Слайд 10

Программирование на языке Ассемблер Способы обращения к элементам массива 2. Использование

Программирование на языке Ассемблер

Способы обращения к элементам массива

2. Использование индексного регистра:

Вычисление

исполнительного адреса:

При операциях с массивом в регистре X обычно хранится смещение адреса элемента массива относительно базового адреса этого массива.

Слайд 11

Программирование на языке Ассемблер Пример работы с одномерным массивом: поиск максимального

Программирование на языке Ассемблер

Пример работы с одномерным массивом:
поиск максимального элемента

массива

program ExArray;
var d: array[1..5] of integer;
max: integer;
i: integer;
begin
max:=d[1];
for i:=2 to 5 do
if d[i]>max then max:=d[i];
end.

ExArray start 0
lda d
sta max
ldx c3
rpt lda d,x
comp max
jlt cont
jeq cont
then sta max
cont rmo x, a
add c3
rmo a, x
comp c15
jlt rpt
hlt

; данные
c3 word 3
c15 word 15
max resb 3
d resb 15
end ExArray