Найти максимальный отрицательный элемент в одномерном массиве - Assembler
Формулировка задачи:
Задание: Найти максимальный отрицательный элемент в одномерном массиве. Массив задается в программе, например
.DATA A DW 5, -3, 9, -4, 5
Решение задачи: «Найти максимальный отрицательный элемент в одномерном массиве»
textual
Листинг программы
.model small .8086 .data res dw 0 A dw 5,-3,9,-4,5 len equ ($-A)/2 .stack db 255 dup(?) .code Show_AX proc push ax push bx push cx push dx push di mov cx, 10 xor di, di ; di - кол. цифр в числе ; если число в ax отрицательное, то ;1) напечатать '-' ;2) сделать ax положительным or ax, ax jns @@Conv push ax mov dx, '-' mov ah, 2 ; ah - функция вывода символа на экран int 21h pop ax neg ax @@Conv: xor dx, dx div cx ; dl = num mod 10 add dl, '0' ; перевод в символьный формат inc di push dx ; складываем в стэк or ax, ax jnz @@Conv ; выводим из стэка на экран @@Show: pop dx ; dl = очередной символ mov ah, 2 ; ah - функция вывода символа на экран int 21h dec di ; повторяем пока di<>0 jnz @@Show pop di pop dx pop cx pop bx pop ax ret Show_AX endp start: mov ax,@data mov ds,ax lea si,A mov cx,len maxsign: lodsw test ax,8000h jz skip cmp ax,word ptr [res] jge skip mov word ptr [res],ax mov ax, [res] skip: loop maxsign call Show_AX mov ah,4Ch mov al,00h int 21h end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д