Найти минимальный нечетный элемент - Assembler
Формулировка задачи:
Найти минимальный нечетный элемент.
Нужно сделать с помощь test.
Решение задачи: «Найти минимальный нечетный элемент»
textual
Листинг программы
;FASM-code.. ;----------------- org 100h jmp start nch db 0 a db 2,4,8,10,255,7,68,11,100,37 len = $ - a ; длина массива start: mov si,a ; его адрес mov cx,len ; счётчик для LOOP xor bx,bx ; флаг нечётных cycle: lodsb ; читаем массив.. test al,1 ; jz next ; пропустить, если чётное inc bx ; иначе: взводим флаг, push ax ; ..и запоминаем нечётное в стеке next: loop cycle ; промотать СХ-раз.. or bx,bx ; выйти, если ВХ=0 (нет нечётных) jz bye ; dec bx ; иначе: ВХ -1, xchg cx,bx ; ..и сделать его счётчиком для LOOP pop ax ; АL = нечётный элемент со-стека begin: pop bx ; снимаем остальные элементы в ВL, cmp bl,al ; ..и ищем минимальное! ja miss ; xchg al,bl ; miss: loop begin ; mov [nch],al ; *запомнить его в переменной. mov ah,8 ; ждём клавишу, int 21h ; ..и на выход! bye: int 20h ; если нет нечётных..
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д