Главная страница
Навигация по странице:

  • Описать компоненты программы. push ds

  • Арифметические операции Сложение двоичных чисел

  • Нарисуйте карту памяти для следующих сегментов Сегмента кода размером 5 слов


    Скачать 126.79 Kb.
    НазваниеНарисуйте карту памяти для следующих сегментов Сегмента кода размером 5 слов
    Дата17.05.2021
    Размер126.79 Kb.
    Формат файлаdocx
    Имя файлаprakt_shpory_evm.docx
    ТипДокументы
    #205892

    ЛР № 1


    Нарисуйте карту памяти для следующих сегментов:

    -Сегмента кода размером 5 слов;

    Одно слово 2-байта(2строчки) в сегменте 64 Кб, 5 слов – 10 яч.



    -Сегмента данных с тремя любыми константами в формате байта, и переменной с именем Т1, указывающим на пятую ячейку сегмента;



    -Сегмент дополнительных данных с одноразрядным, двухразрядным и трехразрядным десятичными числами в кодах ASCII.

    (Н-р: 12=> 31h21h; 123=>31h32h33h)


    ЛР2

    - Логическое сложение двух однобайтных чисел

    MOV AL, 12h

    OR AL, 24h

    - Сложение двух однобайтных чисел

    MOV AL, 12h

    ADD AL, 24h

    - Умножение двух однобайтных чисел

    MOV AX, 02h

    MOV BX, 04h

    MUL BX

    - Деление двух однобайтных чисел

    MOV AX, 0Bh

    MOV BX, 08h

    DIV BX
    Описать компоненты программы.

    push ds ; поместить в стек номер адреса возврата

    sub ax,ax

    push ax ; в стек номер адреса возврата = 0

    mov ax,dseg ; инициализация сегмента данных

    mov ds,ax

    mov al,07h ; задание значения константы в регистре al

    mov cx,5 ; счетчик элементов в массиве

    mov bx,offset source ; адрес 1-го элемента массива в регистре bx

    lea di, dest ; приемника-в di

    again: mov ah,[bx] ; перемещение элемента массива с адресом в регистре bx в регистр ah

    add ah,al ; прибавить к содержимому регистра ah содержимое регистра al

    mov [di],ah ; перемещение числа из регистра ah в массив-приемник по адресу из регистра di

    inc bx ; увеличение адреса текущего элемента в исходном массиве

    inc di ; увеличение адреса текущего элемента в массиве суммы

    loop again ; конец цикла

    ret ; возврат из процедуры

    ЛР3

    4.1 Выведите содержимое регистра dl на экран, поместите в регистр dh число вводимое с клавиатуры.

    mov ah,02h ;выв.содерж.рег.dl на экран

    Mov ah, 01h ; вв.1-го числа с клав.

    4.4 Напишите программу умножения трех чисел размером в 1 байт, без учета знака, с выводом результата на экран. Слагаемые вводит пользователь с клавиатуры.

    Movah, 01h ; вв.1-го числа с клав.

    Int 21h

    Sab al,30h ; вычит. (-30), т.к. ASCII.

    Mov bl,al ; пересылка из al в bl

    Mov ah, 01h

    Int 21h

    Sab al,30h

    Mul bl ;умнож.(по умолч. 1-й в al, а 2-й в какой указан.) сохр.в al

    Mov bl,al ; перемещ.из al в bl

    Mov ah, 01h

    Int 21h

    Sab al,30h

    Mul bl

    Mov dl, al ;перемещ.в рег.где происх.выв.

    Add dl, 30h; д/прав.выв.

    Mov ah, 02h

    Int 21h
    4.5 Напишите комментарии к фрагменту программы приведенному ниже:

    mov dl,x1 ; пересылка 1-го(х1) в dl

    cmp dl,x2 ; сравн.числа в dl с х2

    ja m1 ; если 1>2, переход на метку m1

    mov dl,x2 ; иначе вып.mov (в dl запис. х2)

    m1: cmp dl,x3 ; сравн….

    ja m2 ; если ..>.., переход на метку m2

    mov dl,x3 ; иначе вып.mov …..

    m2: mov ah,02h ;вывод max числа

    int 21h

    ПР3

    Логические команды

    And операнд_1,операнд_2 — операция логического умножения (И - конъюнкция).
    and dx, x1; dx:=dx٧x1

    Or операнд_1,операнд_2 — операция логического сложения (ИЛИ - дизъюнкцию)
    or al, x1; al:=al & x1

    xor операнд_1,операнд_2 — операция логического исключающего сложения (исключающего ИЛИ ИЛИ-НЕ).

    xor ax, dx ;если содержимое совпадает то в регистре ах мы получим нулевой результат, иначе не нулевой результат.

    xor bh,10b ; инвертировали 1й бит в регистре bh

    test операнд_1,операнд_2 — операция “проверить” (способом логического умножения).

    Not операнд — операция логического отрицания.

    not ax ;ax:=
    Арифметические операции
    Сложение двоичных чисел: add оп1,оп2 оп1 = оп1 + оп2 (addition)

    add al, bl
    Вычитание двоичных чисел:
    dec операндоперация декремента, то есть уменьшения значения операнда на 1;

    dec cx ;cx:=cx-1

    sub операнд_1,операнд_2 — команда вычитания; ее принцип действия:
    операнд_1 = операнд_1 – операнд_2

    sub al, bl; al:=al-bl

    Умножение двоичных чисел

    mul множитель_1 - операция умножения двух целых чисел без учета знака

    mul dl; ax:=al*dl, dl- множитель_1 , al- множитель_2

    Деление двоичных чисел

    div делитель - выполнение операции деления двух двоичных беззнаковых значений

    div dl ;ah:al=ax/dl, ax –делимое, dl- делитель , ah-частное, al -остаток




    написать администратору сайта