Методическое пособие по решению задач лабораторного практикума по курсу "ЭВУ и системы" (изучение архитектуры и системы команд INTEL-совместимых микропроцессоров). Коршунов А.Д. - 17 стр.

UptoLike

Составители: 

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 из
является пятибитным, и в каждом кодовом сочетании используется две единицы и три
нуля. Рассматривая каждое такое сочетание как обычное число в двоичной системе
счисления, можно получить десятичное представление кода, что и сделано в
нижеприведённой таблице.
Таблица 7
Десятичная
цифра
Натуральный
двоичный
код «8-4-2-1»
Код
«2 из
Десятичное
представление
кода «2 из
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