Поиск в одномерном массиве - Assembler
Формулировка задачи:
Никак не поддаётся.
Напишите программу поиска в одномерном массиве максимального элемента и его индекса.
massiv:112, -34, 124, 107, -126, 54, 108, 99, 0, -59.
вывод значений в 16сс.
TASM
Решение задачи: «Поиск в одномерном массиве»
textual
Листинг программы
- .model small
- .386
- .data
- mas db 112,-34,124,107,-126,54,108,99,0,-59
- len equ $-mas
- msg1 db 'max=$'
- msg2 db 0Ah,0Dh,'index=$'
- .stack
- db 256 dup(?)
- .code
- main:
- mov ax,@data
- mov ds,ax
- lea si,mas+1
- mov ah,byte ptr [mas]
- mov cx,len
- dec cx
- search:
- lodsb
- cmp al,ah
- jg change
- jmp skip
- change:
- mov ah,al
- mov bx,si
- dec bx
- skip:
- loop search
- push ax
- mov ah,09h
- lea dx,msg1
- int 21h
- pop ax
- push bx
- xchg ah,al
- cbw
- mov bx,16
- get:
- xor dx,dx
- div bx
- push dx
- inc cx
- or ax,ax
- jnz get
- give:
- pop ax
- sub ax,0
- cmp ax,9
- ja hex
- des:
- add ax,30h
- jmp print
- hex:
- add ax,37h
- print:
- mov dx,ax
- mov ah,02h
- int 21h
- loop give
- pop bx
- mov ah,09h
- lea dx,msg2
- int 21h
- mov ah,02h
- mov dx,bx
- add dx,30h
- int 21h
- mov ax,4C00h
- int 21h
- end main
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д