Добавить подпрограмму - Assembler
Формулировка задачи:
Добрый вечер уважаемые
Есть программа написанная сплошным кодом,нужно сделать по заданию следующее:
Для всех заданий входные данные передаются в подпрограмму через стек, а результат возвращается через регистр AL. Для массивов входными данными являются адрес массива и число элементов в нем.
Программа находит максимум в заданном массиве
ASSUME CS:code, SS:stk, DS:data data SEGMENT Message db 'min element:$' mas db 7,4,1,9,6 data ends code segment min macro mov ah,9 mov dx, offset Message int 21h endm main PROC MOV AX,data MOV DS,AX MOV AX,stk MOV SS,AX LEA SP,dnost PUSH BP MOV BP,SP ;Описание команд min mov bl, 65535; mov cx, 5 m1: mov bh, mas[si] inc si cmp bh, bl JA m2 mov bl,bh m2: loop m1 mov ah,2 mov dl, bl add dl,30h int 21h MOV AH,1 INT 21H MOV AX,0 MOV AH,4cH INT 21H main ENDP code ends stk SEGMENT STACK DW 1000 DUP(?) dnost EQU $ stk ENDS END main END main
Решение задачи: «Добавить подпрограмму»
textual
Листинг программы
minimal proc ;bp+2 - адрес массива ;bp+4 - кол-во элементов push bp mov bp, sp mov di, [bp+2] mov cx, [bp+4] dec cx lodsb mov ah, al m: lodsb cmp al, ah jge no mov al, ah no: loop m mov sp, bp pop bp ret 4 minimal endp
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д