Дан массив из 5 элементов. Найти количество отрицательных элементов - Assembler

Узнай цену своей работы

Формулировка задачи:

Дан массив из 5 элементов a db 12,31,10,15,5. Найти количество отрицательных элементов.

Решение задачи: «Дан массив из 5 элементов. Найти количество отрицательных элементов»

textual
Листинг программы
.model small
.data
a db 12,31,10,15,5
r db 0
.code
begin: mov ax,@data
     mov ds,ax
     mov cx,5
     mov si,offset a
a0: lodsb
     test al,al
     jns a1
     inc r
a1: loop a0
    ....; вывод на экран содержимого r
    mov ah,4Ch
    int 21h

Объяснение кода листинга программы

.model small — это директива компилятора, которая указывает на модель памяти, используемую в программе. В данном случае используется модель small, что означает, что для сегмента данных выделяется 16 байт, а для сегмента кода — 4 Кбайта. .data — это сегмент данных, в котором хранятся переменные программы. В данном случае в сегменте данных определен массив a, который содержит пять элементов: 12, 31, 10, 15, 5. .code — это сегмент кода, в котором хранятся инструкции программы. begin: mov ax,@data — это инструкция, которая загружает в регистр ax сегмент данных программы. mov ds,ax — это инструкция, которая указывает на сегмент данных как на активный сегмент. mov cx,5 — это инструкция, которая загружает в регистр cx число 5, которое будет использоваться как счетчик для цикла. mov si,offset a — это инструкция, которая загружает в регистр si смещение (offset) массива a. a0: lodsb — это инструкция, которая загружает в регистр al байт из массива a по смещению, равному 0. test al,al — это инструкция, которая проверяет, является ли содержимое регистра al отрицательным числом (если оно меньше нуля). jns a1 - это инструкция, которая выполняет переход к метке a1, если содержимое регистра al не отрицательное. inc r — это инструкция, которая увеличивает значение переменной r на единицу. a1: loop a0 - это инструкция, которая выполняет цикл, пока содержимое регистра al не станет отрицательным. ... — это комментарии, которые не выполняются в процессе выполнения программы. mov ah,4Ch — это инструкция, которая устанавливает регистр ah в значение 4Ch. int 21h — это инструкция, которая вызывает функцию 21h, которая выводит на экран содержимое регистра ah.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы