Вывод символа с максимальны и минимальным кодом - Assembler/TASM
Формулировка задачи:
Есть код, который выводит символ с минимальным кодом, а как в сделать чтобы в этой же программе выводил символ с максимальным кодом? И можно ли как то сделать чтобы мы вводили исходные данные с клавиатуры?
MASM ; Сегмент данных data_seg segment Stroka db "остановись12345мгновение" dlina=$-Stroka ; определяем длину строки min db ? data_seg ends ; Кодовый сегмент cod_seg segment assume cs:cod_seg,ds:data_seg,ss:stack_seg start: mov ax,data_seg mov ds,ax lea si,Stroka mov AL,[si] mov min,AL mov cx,dlina dec cx inc si ;цикл проверки всех элементов массива @@1: mov AL,[SI] CMP AL,min jae @@2 mov min,AL @@2: inc SI loop @@1 ; вывод min символа на экран, имеющего минимальный код mov dl,min mov ah,2 int 21h ; ждем нажатия любой ;клавиши mov ah,8 int 21h ; выход в операционную систему mov ax,4c00h int 21h cod_seg ends ; Сегмент стека stack_seg segment para stack "stack" dw 100 dup(?) stack_seg ends end start
Решение задачи: «Вывод символа с максимальны и минимальным кодом»
textual
Листинг программы
;цикл проверки всех элементов массива @@1: mov AL,[SI] CMP AL,min jae @@2 mov min,AL @@2: CMP AL,max jbe @@3 mov max,AL @@3: inc SI loop @@1 ; вывод min символа на экран, имеющего минимальный код mov dl,min mov ah,2 int 21h ; вывод max символа на экран, имеющего максимальный код mov dl,max mov ah,2 int 21h
Объяснение кода листинга программы
- Цикл проверки всех элементов массива.
- Если текущий элемент меньше минимального значения, то установить его в качестве нового минимального значения.
- Если текущий элемент больше максимального значения, то установить его в качестве нового максимального значения.
- Увеличить индекс на 1 и продолжить цикл проверки.
- Вывод на экран символа с минимальным значением кода.
- Вывод на экран символа с максимальным значением кода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д