Вводить целые числа пока не встретится 0. Определить минимальное введенное число - Assembler
Формулировка задачи:
Всем привет!
Имею задачу: Вводить целые числа пока не встретится 0. Определить максимальное введенное число. Набросал код, но при выполнении он в любом случае выдает ноль. Какую проверку надо сделать, или как изменить цикл, чтобы выводило правильное минимальное число?
.model small include io.asm .data info db "Вычисление минимального числа из множества введенных чисел. $" smsa db "Вводите числа. Для окончания ввода введите 0 (ноль): $" smsb db "Максимальное число среди введенных - $" N dw ? min dw 32767 .code start: mov ax, @data mov ds,ax mov cx,min lea dx,info outstr ;вывод info newline lea dx,smsa outstr newline cikl: inint N ;ввод N mov ax,N cmp ax,cx jg N_bolshe_min mov cx,N N_bolshe_min: cmp ax,0 jne cikl lea dx,smsb outstr mov min,cx outword min finish end start
Решение задачи: «Вводить целые числа пока не встретится 0. Определить минимальное введенное число»
textual
Листинг программы
org 100h jmp start mess0 db 13,10,'Type digit: $' mess1 db 13,10,' Max digit: $' start: mov ah,9 ; mov dx,mess0 ; int 21h ; xor bx,bx ; здесь будет максимальное mov ah,1 ; ввод с эхом @@: ; int 21h ; cmp al,'0' ; je stop ; нуль прекращает ввод cmp al,bl ; сравниваем.. jb next ; меньшее - не трогаем xchg al,bl ; большее - отправляем в BL next: ; jmp @b ; stop: ; mov ah,9 ; mov dx,mess1 ; int 21h ; xchg al,bl ; выводим на экран макс с регистра BL int 29h ; exit: ; xor ax,ax ; int 16h ; int 20h ; выход по-любой клавише
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д