ВУЗ:
Составители:
17
С. Вычисляем сумму с применением цикла.
Вычислить сумму 1+2+…+19+20 и записать результат в регистр SI (для AsmEd)
или вывести его на экран (для TP-ASM).
Удобно программировать вычисление этой суммы в обратном порядке, т.е. начиная
с 20 – тогда можно воспользоваться регистром с убывающим содержимым. В данном
случае нам подходит цикл LOOP со счетчиком в CX – ведь его содержимое как раз
уменьшается на каждой итерации цикла. Приведём здесь только версию программы для
AsmEd; перевод на TP-ASM осуществляется аналогично предыдущему примеру.
MOV AX, 0 ; будем накапливать сумму в АХ
MOV CX, 20 ; подготовим счётчик цикла
MET: ; этой меткой обозначено начало цикла
ADD AX, CX ; прибавляем очередное слагаемое
LOOP MET ; переход на начало цикла, если СХ не равно нулю
MOV SI, AX ; выдадим результат
HLT
D. Кодируем десятичные цифры.
Цифры десятичной системы счисления (0…9) можно представить (закодировать) с
помощью нулей и единиц различными способами. Наиболее известным является
использование натурального двоичного кода, называемого также «код 8-4-2-1» в
соответствии с весами разрядов. Другой код, применяемый в технике связи - код «2 из 5»
является пятибитным, и в каждом кодовом сочетании используется две единицы и три
нуля. Рассматривая каждое такое сочетание как обычное число в двоичной системе
счисления, можно получить десятичное представление кода, что и сделано в
нижеприведённой таблице.
Таблица 7
Десятичная
цифра
Натуральный
двоичный
код «8-4-2-1»
Код
«2 из 5»
Десятичное
представление
кода «2 из 5»
0 0000 11000 24
1 0001 00011 3
2 0010 00101 5
3 0011 00110 6
4 0100 01001 9
5 0101 01010 10
6 0110 01100 12
7 0111 10001 17
8 1000 10010 18
9 1001 10100 20
17 С. Вычисляем сумму с применением цикла. Вычислить сумму 1+2+…+19+20 и записать результат в регистр SI (для AsmEd) или вывести его на экран (для TP-ASM). Удобно программировать вычисление этой суммы в обратном порядке, т.е. начиная с 20 – тогда можно воспользоваться регистром с убывающим содержимым. В данном случае нам подходит цикл LOOP со счетчиком в CX – ведь его содержимое как раз уменьшается на каждой итерации цикла. Приведём здесь только версию программы для AsmEd; перевод на TP-ASM осуществляется аналогично предыдущему примеру. MOV AX, 0 ; будем накапливать сумму в АХ MOV CX, 20; подготовим счётчик цикла MET: ; этой меткой обозначено начало цикла ADD AX, CX ; прибавляем очередное слагаемое LOOP MET ; переход на начало цикла, если СХ не равно нулю MOV SI, AX ; выдадим результат HLT D. Кодируем десятичные цифры. Цифры десятичной системы счисления (0…9) можно представить (закодировать) с помощью нулей и единиц различными способами. Наиболее известным является использование натурального двоичного кода, называемого также «код 8-4-2-1» в соответствии с весами разрядов. Другой код, применяемый в технике связи - код «2 из 5» является пятибитным, и в каждом кодовом сочетании используется две единицы и три нуля. Рассматривая каждое такое сочетание как обычное число в двоичной системе счисления, можно получить десятичное представление кода, что и сделано в нижеприведённой таблице. Таблица 7 Десятичная Натуральный Код Десятичное цифра двоичный «2 из 5» представление код «8-4-2-1» кода «2 из 5» 0 0000 11000 24 1 0001 00011 3 2 0010 00101 5 3 0011 00110 6 4 0100 01001 9 5 0101 01010 10 6 0110 01100 12 7 0111 10001 17 8 1000 10010 18 9 1001 10100 20